我已经在stackoverflow上搜索了这个,发现了这个: Inserting multiple rows in mysql
可悲的是,当我尝试这个时,它对我不起作用。
当我得到这样的查询时:
INSERT INTO productielijn1
(Datum, Productieomschrijving, Aantal, AantalGemaakt, Verschil)
VALUES
('2016-01-12', '2016-01-12'),
('test1', 'test2'),
(1, 2),
(0, 0),
(0, 0);
它给了我以下错误:
#1136 - Column count doesn't match value count at row 1
即使我添加()arround我的值如下:
INSERT INTO productielijn1
(Datum, Productieomschrijving, Aantal, AantalGemaakt, Verschil)
VALUES
(('2016-01-12', '2016-01-12'),
('test1', 'test2'),
(1, 2),
(0, 0),
(0, 0));
它给了我以下错误:
#1241 - Operand should contain 1 column(s)
那么如何解决这个问题并添加多行1个查询?
答案 0 :(得分:3)
更改为:
INSERT INTO productielijn1
(Datum, Productieomschrijving, Aantal, AantalGemaakt, Verschil)
VALUES
('2016-01-12', 'test1', 1,0,0),
('2016-01-12', 'test2',2,0,0);
您必须按行添加值。
答案 1 :(得分:1)
您在2列以上插入2个值,您的查询可以是:
INSERT INTO productielijn1
(Datum, Productieomschrijving)
VALUES
(('2016-01-12', '2016-01-12'),
('test1', 'test2'),
(1, 2),
(0, 0),
(0, 0));
或:
INSERT INTO productielijn1
(Datum, Productieomschrijving, Aantal, AantalGemaakt, Verschil)
VALUES
(('2016-01-12', '2016-01-12', '', '', ''),
('test1', 'test2', '', '', ''),
(1, 2, '', '', ''),
(0, 0, '', '', ''),
(0, 0, '', '', ''));
答案 2 :(得分:0)
在您的查询中:
INSERT INTO productielijn1
(Datum, Productieomschrijving, Aantal, AantalGemaakt, Verschil)
VALUES
('2016-01-12', '2016-01-12'),
('test1', 'test2'),
(1, 2),
(0, 0),
(0, 0);
字段列表有5列,其中值列表只有两列。
从字段列表中删除三个或在列列表中添加三个。
解决方案:
将默认值添加到三个剩余值列:
INSERT INTO productielijn1
(Datum, Productieomschrijving, Aantal, AantalGemaakt, Verschil)
VALUES
('2016-01-12', '2016-01-12', '', '', ''),
('test1', 'test2', '', '', ''),
(1, 2, '', '', ''),
(0, 0, '', '', ''),
(0, 0, '', '', ''),;
答案 3 :(得分:0)
每组值应与列数相匹配,因此如果剩余的3个字段应保持为空,只需将它们添加到集合中,或用相应的值填充它们:
INSERT INTO productielijn1
(Datum, Productieomschrijving, Aantal, AantalGemaakt, Verschil)
VALUES
('2016-01-12', '2016-01-12','','',''),
('test1', 'test2','','',''),
(1, 2,'','',''),
(0, 0,'','',''),
(0, 0,'','','');