`id` int(10)NOT NULL auto_increment

时间:2011-05-10 07:50:36

标签: mysql

我迁移的一些脚本正在做很多

INSERT INTO `table` ( `id` , `fld2` , `fld3`) VALUES ( '', 'v2', 'v3')

id定义为:int(10) NOT NULL auto_increment

我的数据库/ mysql服务器(5.1.57)抛出错误:

1366 - Incorrect integer value: '' for column 'id' at row 1

''在没有语法错误的情况下被接受,并将整数字段自动递增到原始服务器上的下一个数字(5.1.52)。知道mysql服务器设置有什么区别吗?它可能不是版本差异,都是5.1.xx?

2 个答案:

答案 0 :(得分:4)

由于id是auto_increment,因此不应在插入查询中提及它:

INSERT INTO table (fld2 , fld3) VALUES ('v2', 'v3')

此外,你在你的id中插入字符串,因此万一它不是auto_increment你会得到同样的错误。

答案 1 :(得分:0)

看起来当前服务器的默认设置与前一个不同。查看有关strict mode设置的MySQL文档。