SQL: Auto Increment einer Tabelle reparieren

Gelegentlich kommt es vor, dass bei einer großen Tabelle Überschneidungen stattfinden und in den Errorlogs dann die Meldung Duplicate entry '0' for key 'PRIMARY' für Abfrage die Überhand gewinnt. Diesen Fehler kann man recht einfach mit einer kurzen Zeile SQL beheben.

Duplicate entry beheben

Um den Fehler zu beheben, reicht eine einfache Zeile SQL. Diese Zeile behebt den Fehler in der Regel sofort, du benötigst lediglich den Namen der Tabelle und den letzten Wert deines Primary-Keys der auf Auto Increment steht.

ALTER TABLE `table_name` AUTO_INCREMENT = value;Code-Sprache: JavaScript (javascript)

Ersetze in dem Befehl table_name mit dem Namen deiner Tabelle und den Wert value mit dem letzten Wert deines Primary-Keys + 1 oder 10. Auf jeden Fall etwas, das größer ist, als der aktuelle Wert.

Der Befehl sorgt dafür, dass der Auto Increment beim neuem Wert fortgesetzt wird und es keinen doppelten Eintrag mehr gibt. Damit hast du zumindest deine Tabelle behoben.

Der Fehler lautet innerhalb von WordPress in den meisten Fällen so:

WordPress-Datenbank-Fehler Duplicate entry '0' for key 'PRIMARY' für Abfrage INSERT INTO 'table_name'

Um den Fehler in Zukunft zu vermeiden, musst du jedoch noch das Script beheben, welches möglicherweise zu schnell, ohne Pausen, eingesetzt wird, um Einträge der Tabelle hinzuzufügen. Das ist je nach Script unterschiedlich, weshalb es hier keinen Tipp von mir gibt.

Wenn du den obigen Befehl ausgeführt hast, kann auch ein OPTIMIZE TABLE und REPAIR TABLE helfen, um mögliche Fehler in der Zukunft zu umgehen.

REPAIR TABLE `table_name`
OPTIMIZE TABLE `table_name`Code-Sprache: JavaScript (javascript)

Der erste Befehl versucht, die Tabelle zu reparieren, falls sie kaputt ist und der zweite Befehl optimiert Tabelle, damit sie möglicherweise etwas schneller wird. Am schnellsten wird deine Tabelle aber erst, wenn du für die einzelnen Spalten die richtigen Arten verwendest. Du solltest es vermeiden, überall text oder longtext zu verwenden. Auch eine Volltextsuche kann deine Tabelle schneller machen.

Wenn du Zugang zu bspw. PhpMyAdmin hast, kannst du dort die Tabelle auswählen und öffnen. Anschließend klickst du dann auf SQL und führst dort dein SQL aus.