Schlägt Alter Table fehl, weil eine Zeile hat falsche Daten, Falsche datetime value: '0000-00-00 00:00:00'

Ich bin eine Aktualisierung der aktuellen user-Tabelle mit der folgenden Anweisung:

`ALTER TABLE  `users` ADD  `title` VARCHAR( 5 ) NULL DEFAULT NULL AFTER  `surname` ;`

Welche gibt die folgende Fehlermeldung zurück:

#1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'created_at' at row 1

Created_at Spalte Struktur ist:

created_at datetime NOT NULL

Nicht sicher, warum die Daten ungültig sind - könnte es sein, mit MySQL-Versionen (vom 5.5.43 in 5.1.73)?

Den fix habe ich im moment ist die Aktualisierung der datetime-Wert, bevor Sie die ALTER TABLE-Anweisung:

UPDATE `users` SET `created_at`='2014-01-01 00:00:00' WHERE `created_at`='0000-00-00 00:00:00';

Ist dies eine vernünftige Lösung?

  • Scheint sehr vernünftig zu mir.
  • Fügen Sie bitte die Ausgabe von SELECT @@SQL_MODE, @@VERSION;
InformationsquelleAutor xylar | 2015-06-01
Schreibe einen Kommentar