4

我正在尝试将其放入数据库中。所有行都是正确的。每行也是字符串/文本,除了“Id”,它是一个自动递增的 Int 值。

但是,我遇到了一个意外错误,说Column count doesn't match value count at row 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

4 回答 4

10

那么 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');
于 2012-06-01T22:47:36.333 回答
5

我还发现,如果您在要插入的表上有一个触发器,并且该触发器有另一个包含不匹配列和值的插入语句,它将引发错误“列计数与行的值计数不匹配” .

于 2015-06-29T14:17:45.457 回答
2

You may have defined different number of parameters and are probably passing a different number of parameters.

You may have:

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

or more number of arguments in INSERT INTO than in the VALUES

于 2019-04-19T21:15:43.363 回答
2

记住3点:

  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);

谢谢

于 2020-04-16T20:54:44.383 回答