SQL - 列计数与第1行的值计数不匹配

时间:2012-06-01 22:45:25

标签: mysql count

我想把它放到数据库中。所有行都是正确的。每行也是字符串/文本,“Id”除外,它是一个自动递增的Int值。

我收到一个意外错误,但是,列数与第1行的值计数不匹配。查询有什么问题?

INSERT INTO  `world2_main`.`Messages` (
`Id` ,
`ToId` ,
`FromId` ,
`Subject` ,
`Message` ,
`Read` ,
`Original Sender` ,
`Date`
)
VALUES (
NULL,  '3611',  '156',  'You are so...',  'Cool.',  '0',  '3611'  '1338590308');

4 个答案:

答案 0 :(得分:8)

以及Id是一个自动递增的int值,并在其中放入一个null。

只做

INSERT INTO  `world2_main`.`Messages` (
`ToId` ,
`FromId` ,
`Subject` ,
`Message` ,
`Read` ,
`Original Sender` ,
`Date`
)
VALUES (  '3611',  '156',  'You are so...',  'Cool.',  '0',  '3611'  '1338590308');
编辑:实际上在3611之后只是一个缺少的逗号。但是避免插入id仍然很好。

INSERT INTO  `world2_main`.`Messages` (
    `ToId` ,
    `FromId` ,
    `Subject` ,
    `Message` ,
    `Read` ,
    `Original Sender` ,
    `Date`
    )
    VALUES (  '3611',  '156',  'You are so...',  'Cool.',  '0',  '3611',  '1338590308');

答案 1 :(得分:5)

我还发现,如果你想要插入的表上有一个触发器,并且该触发器有另一个带有不匹配的列和值的insert语句,它将抛出该错误“列计数与值计数不匹配在行“。

答案 2 :(得分:2)

请记住三件事:

  1. 参数数量必须匹配
  2. 应注意自动递增
  3. (这是我的问题)插入多个属性时

不要这样做-

insert into agent(eid, ename, email, phone, score) values(
    (2, 'b', 'b', 5, 3),
    (1, 'a', 'a', 5, 3)
   );

您必须改为这样做

insert into agent(eid, ename, email, phone, score) values
    -> (1, 'a', 'a', 5, 3),
    -> (2, 'b', 'b', 5, 3);

谢谢

答案 3 :(得分:1)

您可能定义了不同数量的参数,并且可能传递了不同数量的参数。

您可能有:

INSERT INTO `buyers`(`key1`,  `key2` )
VALUES (value1,value2,value3 );

INSERT INTO中的参数数量大于VALUES