1364: Field 'name' doesn't have a default value
MySQLWas bedeutet das?
Eine Zeile wurde ohne Wert für eine Spalte eingefügt, die als NOT NULL ohne DEFAULT definiert ist. Im strikten SQL-Modus löst MySQL einen Fehler aus, weil es die fehlende Pflichtspalte nicht automatisch füllen kann.
Ursache
Eine Pflichtspalte (NOT NULL, ohne DEFAULT) wurde im INSERT weggelassen, und STRICT_TRANS_TABLES/STRICT_ALL_TABLES ist in sql_mode aktiviert. Eine für den alten, nachsichtigen Modus geschriebene Anwendung stößt auf diesen Fehler, wenn sie auf einen Server mit aktiviertem Strict Mode umzieht.
Lösung
Ergänze im INSERT einen Wert für die fehlende Spalte oder definiere ein sinnvolles DEFAULT für die Spalte: ALTER TABLE my_table MODIFY my_column ... NOT NULL DEFAULT 'value'; Ist die Spalte wirklich optional, erlaube NULL. sql_mode lässt sich als vorübergehender Workaround/zur Kompatibilität lockern, für die Datenqualität wird aber empfohlen, den Strict Mode beizubehalten.
Weitere Einträge zu dieser Datenbank
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value
- 1049Unknown database 'name'
- 1206The total number of locks exceeds the lock table size
- 1236Got fatal error 1236 from master when reading data from binary log
- 1129Host 'host' is blocked because of many connection errors
- 1194Table 'name' is marked as crashed and should be repaired