Basierend auf meinen Recherchen würde ich sagen, dass es sowohl eine "Du"-Sache als auch eine "MySQL"-Sache sein könnte. Überprüfen Sie Ihre Tabellendefinitionen mit SHOW CREATE TABLE table_name;
. Beachten Sie alle Felder, die mit NOT NULL
definiert sind .
Das MySQL 5.6 Referenzhandbuch:13.2.5 INSERT-Syntax Zustände:
Dies würde bedeuten, dass es keine Rolle spielt, welchen SQL-Modus Sie verwenden. Wenn Sie eine einzelne Reihe machen INSERT
(gemäß Ihrem Beispielcode) und Einfügen eines NULL
Wert in eine mit NOT NULL
definierte Spalte , es soll nicht funktionieren.
Im gleichen Atemzug, ironischerweise, wenn Sie den Wert einfach aus der Werteliste weglassen würden, sagt das MySQL-Handbuch Folgendes, und der SQL-Modus spielt eine Rolle in diesem Fall:
Sie können also nicht gewinnen!;-) Scherzhaft. Die Sache, die Sie tun müssen, ist, diesen NOT NULL
zu akzeptieren auf einem MySQL-Tabellenfeld bedeutet wirklich Ich akzeptiere keinen NULL-Wert für ein Feld, während ich eine einzelne Zeile INSERT
ausführe , unabhängig vom SQL-Modus .'
Abgesehen davon gilt auch Folgendes aus dem Handbuch:
Also fassen Sie sich ein Herz. Legen Sie Ihre Standardeinstellungen in der Geschäftslogik (Objekte) fest und überlassen Sie der Datenschicht die Richtung. Datenbank-Standardwerte scheinen eine gute Idee zu sein, aber wenn es sie nicht gäbe, würden Sie sie vermissen? Wenn im Wald ein Baum umfällt...