无法在非严格模式下的 MariaDB 中插入空白值

无法在非严格模式下的 MariaDB 中插入空白值

我刚刚在 Debian 9 和 mariadb 上设置了一个新的开发环境:10.1.26-MariaDB-0+deb9u1 Debian 9.1

以前的环境是带有 mysql 的 Debian 7: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/文本字段)

我无法插入新记录或更改现有记录。我使用的是 laravel/eloquent,如果我将连接选项设置为 strict=true,则会收到有关该列没有默认值的错误。

我所有的研究表明,我应该能够关闭严格模式以恢复旧功能,但是严格模式似乎并未打开。

我是否遗漏了某个配置选项?

答案1

找到允许不精确代码继续运行的设置并不是一个好主意。总有一天它会表现出错误的行为。

修复您的代码,向所有设置了值的列插入一个值NOT NULL,并且没有默认值。

或者,如果某一列有一个有意义的默认值,则将表列更改为包含默认值。

相关内容