Wenn man mit SQL oder MySQL arbeitet, kommt es gerade bei den ersten Versuchen schnell vor, dass man alle Inhalte einer Tabelle wieder löschen muss. Hat man aber einen automatisch durchlaufenden Wert, meistens das Feld “ID” angelegt, zählt dieser bei einem reinen Löschen der Inhalte trotzdem weiter: Das Löschen hat nämlich keinen Einfluss auf die “auto_increment” Werte der ID-Spalte.
Um diesen Wert auch zurückzusetzen und die Tabelle wieder mit “0” als erster ID zu starten, hilft statt dem Löschen des Inhaltes der TRUNCATE BefehL:
TRUNCATE TABLE name
Mit diesem Befehl werden alle Daten in der Tabelle “name” gelöscht und der “auto_increment” Wert wieder zurückgesetzt, er beginnt also wieder bei “0”.
Auch wenn das Löschen der Tabelle und der Reset der auto_increment Spalte der sauberste und sicherste Weg sind, lässt sich der Wert auch ohne löschen zurücksetzen – allerdings nur auf einen höheren als den aktuellen Wert: Hat man in seiner Tabelle die Einträge 500-700 gelöscht – und das waren auch die letzten Einträge – würde die ID-Spalte durch die auto_icrement Funktion trotztdem bei Zeile 701 weiterzählen. Mit dem folgenden Befehl sorgt man dafür, dass die Zählung bei 501 fortgesetzt wird, ohne per “TRUNCATE” alle anderen Zeilen ebenfalls zu löschen:
ALTER TABLE name AUTO_INCREMENT = 501
Der Wert 501 ist dabei der Wert, mit dem die auto_increment Spalte bei dem nächsten Eintrag weiterzählt – dieser muss aber höher als der aktuelle, letzte Wert der Tabelle sein.