我继承了一个项目,我们正试图将其从MySQL 4.0迁移到MySQL 5(!)从myISAM到InnoDB。查询现在正在下降,因为它们是在所有参数上使用ADODB connection的->qstr()构造的,包括int。在没有提供值的情况下,我最终得到:
INSERT INTO tablename VALUES ('', 'stuff'...)其中第一列是auto_increment。这会导致错误(这很公平,因为'‘不是整型的)。MySQL中是否有一个开关可以让它的行为像以前一样(我假设它只是静默地转换为0?)
发布于 2010-06-07 20:48:56
编辑
我只是运行了几个测试,我在下面写的东西对你一点帮助都没有。错误是由于错误的数据类型造成的,我建议的SQL设置不会改变这一点。不过,我还是把这个答案留在这里,因为它可能对其他人有帮助。
首先,仔细检查列是否真的是自动递增的--有几次我在CREATE TABLE文件中遗憾地遗漏了列是auto_increment的事实。
另一件可能有帮助的事情是检查NO_AUTO_VALUE_ON_ZERO是否没有打开。
SET SQL_MODE=''应该把它关掉。
https://stackoverflow.com/questions/2989478
复制相似问题