DBAtlas · Atlas für Datenbankbetrieb

1364: Field 'name' doesn't have a default value

MySQL

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank