[mysql]id zurücksetzten

B

borsti

Aktives Mitglied
Thread Starter
Dabei seit
16.08.2005
Beiträge
115
Reaktionspunkte
1
hi, also ich habe folgendes problem:

eine datenbank bei der die fortlaufende id (durch bearbeiten, löschen, etc) nun bei 9 beginnt, die nächste ist 12 und so weiter.

Nun wollte ich fragen ob man die irgendwie zurücksetzten kann, so das die id des ersten eintrages (bei mir 9) eins ist, der zweite zwei und so weiter?

ich hoff ihr versteht was ich mein.

schöne grüße
 
Soweit ich weiß ist das nicht möglich. Der Grund dafür ist, dass es bei einer ordentlichen Anwendung nicht nötig ist ;)
Schreib einfach mal genauer, wo Dein Problem ist, bzw warum Du die ID zurücksetzen möchtest. Dann lässt sich sicher eine elegantere Lösung als das Aushebeln von MySQL-Mechanismen finden.
 
Zuletzt bearbeitet:
Spalte löschen und neu anlegen schreibt alle ID's neu.

ALTER TABLE tabelle DROP COLUMN id;
ALTER TABLE tabelle ADD COLUMN (id INT AUTO_INCREMENT, PRIMARY KEY (id));

Geht sicher auch in einem einfachen UPDATE-Query, sofern Subquerys verfügbar sind (ab 4.1)

In einer fertigen Anwendung ist sowas meiner Meinung nach auch nicht zu gebrauchen. Beim Testen finde ich sowas aber auch manchmal recht hilfreich.
 
Das kann man machen? Meckert die DB nicht, wenn dadurch dann zwei Einträge identisch werden (sie sich nur durch die ID unterschieden)?
 
nein, warum sollte MySQL dadurch meckern? Nach außen hin kann man die Einträge vielleicht in dem Moment (also wenn die eine Spalte gelöscht ist) nicht mehr unterscheiden, aber MYSQL kennt ja die einzelnen Datensätze und wenn man nun die Spalte erneut anlegt (mit primary_key und auto_increment) dann kann man die einträge hinterher auch wieder von außen unterscheiden.

Allerdings frage ich mich auch, was dieses "zurücksetzen" für einen Sinn machen sollte. Es ist ja eben der Trick, dass die Datenbank nicht alle anderen Einträge ändern muss wenn man einen Eintrag hinzufügt. Und eine ID sollte man ja eh nur benutzen um die Einträge innerhalb des Programms/der Webseite anzusprechen.
 
danke, vielen dank für die schnellen antworten.
werde alles mal ausprobieren.

grüße
 
Zurück
Oben Unten