reset auto increment id nach dem löschen der letzten Zeile
Machte ich eine Tabelle in einer mysql-Datenbank für Testzwecke.
Die id wird automatisch hochgezählt. Nachdem Sie dies getan haben(nicht zusammen)
delete from test where id=4;
alter table test auto_increment = 4;
insert into test(nume) values('dan');
Es gibt keine Fehler. Aber die Letzte id ist 5, nicht 4. Sollte dies nicht funktionieren?
- gut, früher habe ich eine weitere option : ALTER TABLE test DROP
id
; ALTER TABLE test AUTO_INCREMENT = 1; ALTER TABLE test ADDid
int UNSIGNED not NULL AUTO_INCREMENT PRIMARY KEY ERSTE;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach löschen schreiben diese Abfrage
Frage Sie sich, ob Sie brauchen, um zu ändern den Primärschlüssel. In den meisten begründeten Fällen - Nein.
Wird dies teilweise zu umgehen, sobald Sie eine Zeile einfügen, die ID ist 4, aber auto_increment ändern 5.
Als Ergebnis, nächste Zeile einfügen geben Sie eine primary key-Vervielfältigung Fehler.
Diese ganze Prozedur hat nur verwenden, falls Sie löschen den Datensatz mit der höchsten id.
Sollten Sie delete where id=2, Sie können nicht ändern, die autoincrement-id. Aus welchem Grund auch immer Sie tun, nicht wie man eine Lücke in der id-Zeile mit id=4, im Falle des löschen-id =2 gibt es eine Lücke. Also warum Durcheinander mit den ids, wenn Sie nach dem hinzufügen einen neuen Datensatz id =5 würden Sie die gleiche Art von Lücke.
Aber was ist mit racing-Bedingungen. Löschen Sie Datensatz-id=4. zwei millisec später habe ich einen Datensatz hinzufügen, erste id=5. Was passiert mit den auto increment id?
Was legit Grund ist es für die Vermeidung dieser Lücken?