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

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

предыдущая среда была Debian 7 с mysql: 5.6.38-1~dotdeb+7.1 (Debian)

значение для sql-режима:

MariaDB [(none)]> SHOW VARIABLES LIKE 'sql_mode';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| sql_mode | NO_ENGINE_SUBSTITUTION |
+---------------+------------------------+

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

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

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

есть ли вариант конфигурации, который мне не хватает?

13
задан Romulo
07.02.2023 17:18 Количество просмотров материала 2542
Распечатать страницу

1 ответ

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

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

поочередно при наличии значимого значения по умолчанию для столбца измените столбец таблицы на контейнер значения по умолчанию.

0
отвечен danblack 2023-02-09 01:06

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх