Frage zu AUTO_INCREMENT

Buzz Lightzyear

Benutzer
Beiträge
17
Hallo,

ich hab hier eine kleine Tabelle, wo die erste Spalte die "id" ist und mit AUTO_INCREMENT hinaufgezählt wird:

Code:
CREATE TABLE system(id mediumint not null auto_increment, name char(255), PRIMARY KEY (id));

Wenn ich jetzt mit

Code:
insert into system values(NULL, 'Eintrag_1');

einen Wert (oder mehrere) einfüge, wird id automatisch hinaufgezählt - das ist auch gut so. Aber wenn ich jetzt zB fünf von zehn Einträgen rauslösche wird der nächste Eintrag mit elf beginnen, ich möchte aber, dass sich die Werte dynamisch an die Anzahl der Einträge anpasst... kann mir jemand sagen wie das geht?

Danke & Lg
buzzzz
 
Werbung:
Aber wenn ich jetzt zB fünf von zehn Einträgen rauslösche wird der nächste Eintrag mit elf beginnen, ich möchte aber, dass sich die Werte dynamisch an die Anzahl der Einträge anpasst... kann mir jemand sagen wie das geht?

Gar nicht, und das ist auch nicht nötig. Eine ID muß eindeutig sein, nicht aber zwingend immer aufsteigend (kann auch ein UUID sein) und auch nicht lückenlos.
 
Ok, danke für die Antwort. Ich finds halt nur ein bisschen komisch, wenn ich zB einen Film in eine Datenbank speichere, dann lösche und es "vermerkt" bleibt, dass da mal was war... aber klar, eindeutig muss die id sein... aber das wäre sie ja auch, wenn wenn die Stellen automatisch "nachrutschen" würden.

Lg
 
das wäre fatal, weil ID's gern auch als Foreign Key verwendet werden. Eine automatisch vergebene ID dient lediglich der DB für interne Zwecke (Primary Key), nicht aber für den Anwender.
 
Ergänzend würde ich sagen das sich eindeutig auch auf die Zeit bezieht. Wenn du also einen Datensatz löscht und die ID einfach neu vergeben wird wäre sie für einen Moment eindeutig aber eben nicht für die Vergangenheit. Angenommen du hast jetzt irgendwann mal etwas synchronisiert dann ist nichts mehr eindeutig, das ist alles aber keine ID.
 
Werbung:
Wenn du eine UNIQUEID nimmst die nicht einfach nur hochgezählt wird, dann ist auch nicht zu erkennen das mal was zwischendrin gelöscsht wurde. Und wenn es dir um die Anzahl an Filmen geht, dann kannst du mit COUNT zählen wieviele du hast
 
Zurück
Oben