我正在尝试在mysql中插入一些值,但我得到错误代码1136,我验证了其中一个值是自动增量所以我不必输入那个,其余的总共18个正是我正在写的总价值,有人可以帮助我吗?
这是我正在使用的表:
FIELD TYPE NULL KEY DEFAULT EXTRA
id_display_detail int(11) NO PRI auto_increment
amount double NO
amount_lc double NO
exchange double NO
company varchar(10) NO
date datetime NO
description varchar(100) NO
document_number varchar(20) NO
document_type varchar(2) NO
posting_key varchar(3) NO
special_gl varchar(1) NO
status int(11) NO
voucher_number varchar(40) NO
year int(11) NO MUL
id_currency int(11) NO MUL
id_employee int(11) NO MUL
credit bit(1) YES
card_type varchar(45) NO
line_item int(11) YES
这是我的代码:
INSERT INTO display_detail VALUES (300,300,0,'2001','2016-04-11',
'Downpayment ZM00080621','2000010802','ZP','29','R',0,
'GCCTEA 8062130',2016,1,1561,0,NULL,1);
我错过了什么吗?
答案 0 :(得分:2)
并且其中一个值是自动递增的,所以我不必输入那个
这不会改变VALUES子句中值的数量必须与列数匹配的事实。
您需要指定NULL作为auto_increment列的值 - 或者在INSERT首先指定列列表。
答案 1 :(得分:1)
您错过了列名称 (因为id是自动的,你提供的值不计算列数,所以必须声明列名)
INSERT INTO display_detail ( amount,
amount_lc ,
exchange ,
company ,
date ,
description ,
document_number,
document_type ,
posting_key ,
special_gl ,
status ,
voucher_number ,
year ,
id_currency ,
id_employee ,
credit ,
card_type ,
line_item ) VALUES (300,300,0,'2001','2016-04-11',
'Downpayment ZM00080621','2000010802','ZP','29','R',0,
'GCCTEA 8062130',2016,1,1561,0,NULL,1);
答案 2 :(得分:0)
您似乎没有列出INSERT语句中的列。 MySQL查询通常如下所示:
INSERT INTO table
(column1, column2, ... )
VALUES
(expression1, expression2, ... ),
(expression1, expression2, ... ),
...;
(摘自:http://www.techonthenet.com/mysql/insert.php)
最终的查询将是这样的:
INSERT INTO display_detail
(amount, amount_lc, exchange, company, date, description,
document_number, document_type, posting_key,special_gl,status,voucher_number,year,
id_currency, id_employee, credit, card_type, line_item)
VALUES (300,300,0,'2001','2016-04-11',
'Downpayment ZM00080621','2000010802','ZP','29','R',0,
'GCCTEA 8062130',2016,1,1561,0,NULL,1);