在MySQL 5中将空字符串插入auto_increment列

时间:2010-06-07 12:34:21

标签: php mysql

我继承了一个项目,我们正试图从MySQL 4.0(!)和myISAM迁移到InnoDB到MySQL 5。查询现在正在下降,因为它们是在所有参数(包括int)上使用ADODB连接 - > qstr()构建的。如果没有提供任何价值,我最终得到:

INSERT INTO tablename VALUES ('', 'stuff'...)

其中第一列是auto_increment。这会导致错误(公平,因为''不是int)。在MySQL中是否有一个开关使它像以前一样运行(我假设它只是默默地转换为0?)

1 个答案:

答案 0 :(得分:1)

修改

我刚刚进行了一些测试,我在下面写的内容根本无法帮助你。该错误是由于错误的数据类型,我建议的SQL设置不会改变它。我会在这里留下这个答案,因为它可能对其他人有帮助。


首先,仔细检查列是否真的自动增加 - 有几次我有CREATE TABLE个文件,其中列是auto_increment的事实遗憾地丢失了。

另一件可能有用的方法是检查NO_AUTO_VALUE_ON_ZERO是否未开启。

SET SQL_MODE=''应将其关闭。