Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Lücken im Autoinkrement entfernen

MySQL erlaubt es Ihnen nicht, die Indizierung einer Auto-Index-Spalte zu ändern, sobald sie erstellt wurde. Was ich tue, ist die Auto-Index-Spalte zu löschen und dann eine neue mit demselben Namen hinzuzufügen, mysql indiziert die neu generierte Spalte ohne Lücken. Tun Sie dies nur bei Tabellen, bei denen der Auto-Index für die restlichen Daten nicht relevant ist, sondern lediglich als Referenz für Aktualisierungen und Löschungen verwendet wird.

Zum Beispiel habe ich das kürzlich für eine Tabelle mit Sprichwörtern gemacht, bei der die Auto-Index-Spalte nur verwendet wurde, wenn ich ein Sprichwort aktualisiert oder gelöscht habe, aber ich brauchte, dass der Auto-Index sequentiell ist, da die Sprichwörter über eine Zufallszahl zwischen 1 herausgezogen werden und die Zählung der Sprichwörter, die Lücken in der Folge hätten dazu führen können, dass die Zufallszahl auf einen nicht existierenden Index hinweist.

HTH