插入语句中的MySql错误1241

时间:2014-04-14 16:43:33

标签: mysql sql insert

这是我的代码,它给了我:"错误代码1241.操作数应包含1列" 。我已经盯着它看了几个小时,而我无法弄清楚是什么导致它。我也可以提供create table语句,如果这会有所帮助。另外我使用的是MySQL Workbench 56。

对于格式错误的代码感到抱歉,这是我的第一篇文章,所以如果我违反任何规则请告诉我。我很高兴再次提交。

旧代码:

    INSERT INTO sales (sales_id, sales, salesman, customer, date, region) 

VALUES
(
(null,null,null,...),
(...),

);

更正后的代码:

INSERT INTO sales (sales_id, sales, salesman, customer, date, region) 
VALUES
  (null, 2456.00, 'Barb', 'D-Square', '2014/06/10', 'N Reg'),
  (null, 3894.00, 'Barb', 'Lowes', '2014/05/08', 'N Reg'),
  ...(last row);

我认为有两件事有助于澄清我如何解决这个问题。首先,我按照所选答案中的建议重新排列了所有内容,但也意识到我的VALUES语句有太多括号。

:VALUES((第一行),(第二行),......);

但实际上正确的方法是: VALUES(第一行),(第二行)......(最后一行);

我没有意识到输入"书挡"声明是 VALUES ......和...... ;

另外我的日期格式不正确,应该是YYYY / MM / DD而不是MM / DD / YYYY

感谢您的帮助!我对这个社区的活跃和快速感到非常惊讶。你们是救命的人。

2 个答案:

答案 0 :(得分:2)

insert的问题在于您已经翻转了数据:insert期望逐行组织值,就像在表格中一样。您提供了逐列组织的数据。

一旦您“翻转”数据以按正确的顺序排列,插入就会起作用:

INSERT INTO sales (sales_id, sales, salesman, customer, date, region)
VALUES
    (null, 2456.00, 'Barb', '06/10/2014', 'D-Square', 'N Reg')
,   (null, 3894.00, 'Barb', '05/08/2014', 'Lowes', 'N Reg')
,   ... -- And so on for the remaining 26 rows

答案 1 :(得分:0)

您似乎正在尝试执行多插入但是语法错误 它看起来像:

INSERT INTO sales (sales_id, sales, salesman, customer, date, region) 

VALUES(null, 2456.00, 'Barb', '06/10/2014', 'D-Square', 'N Reg'),
(null, 3894.00, 'Barb', '05/08/2014', 'Lowes', 'N Reg'),
...