在 Mac 上将空字符串作为 NULL 插入到 MySQL

在 Mac 上将空字符串作为 NULL 插入到 MySQL

我遇到了一个奇怪的问题。我尝试在 Mac 上运行以下语句:

INSERT INTO table (field) VALUES ('')

其中字段是接受NULL值的数字。

我在 Ubuntu 上安装了 MySQL 5.5.40,此查询运行良好。我在 Mac 上还安装了 MySQL 5.5.45,查询失败:

错误 1366 (HY000):列“字段”的整数值不正确:''

我发现 Mac 上的标准 MySQL 安装使用标准值,不使用任何my.cnf配置文件。我尝试在 Ubuntu 上检查my.cnf,但似乎没有任何配置选项与此问题相关。

答案1

我发现错误消息符合条件:您无法将字符串插入 int 列。请尝试以下操作:

INSERT INTO table (field) VALUES (NULL)

或简单

INSERT INTO table (field) VALUES ()

答案2

正确的解决方案是不要在 my.cnf 中使用严格模式:

原来的:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

修改的:

sql_mode=NO_ENGINE_SUBSTITUTION

相关内容