Невозможно вставить с пустым значением в MariaDB не в строгом режиме

290
Romulo

Я только что установил новую среду разработки на Debian 9 и mariadb: 10.1.26-MariaDB-0 + deb9u1 Debian 9.1

Предыдущей средой был Debian 7 с mysql: 5.6.38-1 ~ dotdeb + 7.1 (Debian)

значение для sql-mode: MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode'; +---------------+------------------------+ | Variable_name | Value | +---------------+------------------------+ | sql_mode | NO_ENGINE_SUBSTITUTION | +---------------+------------------------+

Для баз данных столбцы настроены как NOT NULL без значения по умолчанию. (большинство это просто поля varchar / text)

Я не могу вставить новые записи или изменить существующие записи. Я использую laravel / eloquent, и если я установил параметр подключения в значение strict = true, я получаю сообщение об ошибке, что у столбца нет значения по умолчанию.

Все мои исследования показали, что я должен иметь возможность просто выключить строгий режим, чтобы вернуть старую функциональность, однако не похоже, что строгий режим включен.

Есть ли опция конфигурации, которую мне не хватает?

0

1 ответ на вопрос

0
danblack

Найти настройку, которая позволяет неточному коду продолжать работать, не очень хорошая идея. Однажды, в конце концов, это проявит неправильное поведение.

Исправьте ваш код, чтобы вставить значение во все столбцы, в которых оно установлено, NOT NULLа не по умолчанию.

В качестве альтернативы, если для столбца есть значимое значение по умолчанию, измените столбец таблицы, чтобы он содержал значение по умолчанию.