我试图插入到我的mySQL数据库.第一列是'id'列,因为它是一个auto_increment字段,我把它留空.由于某种原因,我无法插入,我得到下面提到的错误.我感谢任何帮助这.尝试插入时出现以下错误:
Incorrect integer value: '' for column 'id' at row 1
我的查询
INSERT INTO workorders VALUES('', ?, ?, ?, ?, ?)
kxkpmulp1#
这可能意味着你的id是一个AUTO_INCREMENT整数,你试图发送一个字符串。你应该指定一个列列表,并从你的INSERT中省略它。
id
AUTO_INCREMENT
INSERT
INSERT INTO workorders (column1, column2) VALUES (?, ?)
eaf3rand2#
要让MySQL为AUTO_INCREMENT字段生成序列号,您有三个选项:1.指定列出一个列列表,并按照njk的建议从其中省略auto_increased列。这将是最好的方法。参见注解。1.显式分配NULL1.显式指定03.6.9. Using AUTO_INCREMENT:...没有为AUTO_INCREMENT列指定值,MySQL会自动分配序号。您也可以显式分配NULL或0给该列以生成序号。这三个语句将产生相同的结果:
INSERT INTO workorders (`priority`, `request_type`) VALUES(?, ?, ...) INSERT INTO workorders VALUES(NULL, ?, ...) INSERT INTO workorders VALUES(0, ?, ...)
w6lpcovy3#
尝试编辑您的my.cf并注解原始sql_mode,并添加sql_mode =“"。
vi /etc/mysql/my.cnf
SQL_mode =“”保存并退出
service mysql restart
8ljdwjyq4#
对于wamp/phpmyadmin中的相同错误,我编辑了my.ini,评论了原文:
wamp/phpmyadmin
my.ini
;sql-mode= "STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER"
并添加sql_mode = ""。
sql_mode = ""
wf82jlnq5#
这是因为您的数据发送列类型是整数,并且您正在向其发送字符串值。所以,下面的方法对我有效。试试这个。
INSERT INTO workorders VALUES ( null, ?, ?, ?, ?, ? )
不要使用'null'。使用它作为null不带单引号。
'null'
null
qfe3c7zg6#
如果有phpMyAdmin,只需转到变量并查找SQL模式,变量,编辑它并删除变量的所有内容,然后保存。对于那些不想接触代码的人来说,这也应该解决这个问题。
3pvhb19x7#
当使用mysql服务器时,你可以通过输入set global sql_mode=''来修复它。
set global sql_mode=''
7条答案
按热度按时间kxkpmulp1#
这可能意味着你的
id
是一个AUTO_INCREMENT
整数,你试图发送一个字符串。你应该指定一个列列表,并从你的INSERT
中省略它。eaf3rand2#
要让MySQL为
AUTO_INCREMENT
字段生成序列号,您有三个选项:1.指定列出一个列列表,并按照njk的建议从其中省略auto_increased列。这将是最好的方法。参见注解。
1.显式分配NULL
1.显式指定0
3.6.9. Using AUTO_INCREMENT:
...没有为AUTO_INCREMENT列指定值,MySQL会自动分配序号。您也可以显式分配NULL或0给该列以生成序号。
这三个语句将产生相同的结果:
w6lpcovy3#
尝试编辑您的my.cf并注解原始sql_mode,并添加sql_mode =“"。
SQL_mode =“”
保存并退出
8ljdwjyq4#
对于
wamp/phpmyadmin
中的相同错误,我编辑了my.ini
,评论了原文:并添加
sql_mode = ""
。wf82jlnq5#
这是因为您的数据发送列类型是整数,并且您正在向其发送字符串值。
所以,下面的方法对我有效。试试这个。
不要使用
'null'
。使用它作为null
不带单引号。qfe3c7zg6#
如果有phpMyAdmin,只需转到变量并查找SQL模式,变量,编辑它并删除变量的所有内容,然后保存。对于那些不想接触代码的人来说,这也应该解决这个问题。
3pvhb19x7#
当使用mysql服务器时,你可以通过输入
set global sql_mode=''
来修复它。