In MariaDB kann kein leerer Wert eingefügt werden, der sich nicht im strikten Modus befindet

429
Romulo

Ich habe gerade eine neue Entwicklungsumgebung für Debian 9 und Mariadb eingerichtet: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1

Vorherige Umgebung war Debian 7 mit MySQL: 5.6.38-1 ~ dotdeb + 7.1 (Debian)

Wert für den SQL-Modus ist: MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode'; +---------------+------------------------+ | Variable_name | Value | +---------------+------------------------+ | sql_mode | NO_ENGINE_SUBSTITUTION | +---------------+------------------------+

Für die Datenbanken sind die Spalten als NOT NULL ohne Standardwert eingerichtet. (die meisten sind nur varchar / Textfelder)

Ich kann keine neuen Datensätze einfügen oder vorhandene Datensätze ändern. Ich verwende Laravel / eloquent und wenn ich die Verbindungsoption auf strict = true setze, erhalte ich eine Fehlermeldung, dass die Spalte keinen Standardwert hat.

Meine ganze Forschung hat gezeigt, dass ich in der Lage sein sollte, den strikten Modus einfach auszuschalten, um die alte Funktionalität wiederherzustellen. Der strikte Modus scheint jedoch nicht aktiviert zu sein.

Gibt es eine Konfigurationsmöglichkeit, die mir fehlt?

0

1 Antwort auf die Frage

0
danblack

Es ist keine gute Idee, eine Einstellung zu finden, mit der ungenauer Code weiter ausgeführt werden kann. Eines Tages wird es ein falsches Verhalten zeigen.

Korrigieren Sie Ihren Code, um einen Wert in alle Spalten einzufügen, in denen er festgelegt ist, NOT NULLund keinen Standardwert.

Wenn ein sinnvoller Standardwert für eine Spalte vorhanden ist, ändern Sie die Tabellenspalte alternativ in Container als Standardwert.