我继承了一个项目,我们正试图从MySQL 4.0(!)和myISAM迁移到InnoDB到MySQL 5。查询现在正在下降,因为它们是在所有参数(包括int)上使用ADODB连接 - > qstr()构建的。如果没有提供任何价值,我最终得到:
INSERT INTO tablename VALUES ('', 'stuff'...)
其中第一列是auto_increment。这会导致错误(公平,因为''不是int)。在MySQL中是否有一个开关使它像以前一样运行(我假设它只是默默地转换为0?)
答案 0 :(得分:1)
修改强>:
我刚刚进行了一些测试,我在下面写的内容根本无法帮助你。该错误是由于错误的数据类型,我建议的SQL设置不会改变它。我会在这里留下这个答案,因为它可能对其他人有帮助。
首先,仔细检查列是否真的自动增加 - 有几次我有CREATE TABLE
个文件,其中列是auto_increment的事实遗憾地丢失了。
另一件可能有用的方法是检查NO_AUTO_VALUE_ON_ZERO
是否未开启。
SET SQL_MODE=''
应将其关闭。