Kategorien
Programmierung

MySQL AUTOINCREMENT nachjustieren

Ab und an kann es passieren, daß sich MySQL beim AUTOINCREMENT verschluckt und versucht, einen Wert anzulegen, der bereits existiert.

Zur Fehlerbehebung gilt es, den aktuellen AUTOINCREMENT-Wert zu ermitteln, der nach dem Ausführen von

mysql> SHOW TABLE STATUS FROM <datenbank> WHERE Name = '<tabelle>';

in der Spalte ‚Auto_increment‘ zu finden ist. Anschließend kann mittels

mysql> ALTER TABLE <tabelle> AUTO_INCREMENT = <wert>;

ein neuer Startwert gesetzt werden.

Kategorien
Programmierung

Incorrect integer value bei Autoincrement-Feldern

Meldet MySQL nach einem Update auf Version 5 plötzlich jede Menge „Incorrect integer value“s in den Autoincrement-Feldern, dann versucht ein Programm mit an Sicherheit grenzender Wahrscheinlichkeit gerade, eben diese Felder mit leeren Strings zu füttern.

Bis einschließlich Version 4 wurde hier der String stillschweigend durch den jeweiligen Autoincrement-Wert ersetzt, ein Verhalten, das mit Version 5 durch das standardmäßige Einschalten des „STRICT“-Modus geändert wurde.

Wer „quick and dirty“ gerne wieder seine Ruhe hätte, kann einfach ein

set sql_mode = '';

absetzen. Wer stattdessen lieber auf Fehlersuche gehen will, dem sei der ‚TRADITIONAL‘-Mode empfohlen, der im obigen Fall dann Fehler statt Warnungen ausspuckt.

Nächere Infos zu den verschiedenen SQL-Modi gibt es in der MySQL Dokumentation.