我遇到了一个奇怪的问题。我尝试在 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