提问者:小点点

列计数与行%1处的值计数不匹配


所以我读了其他的帖子,但是这个问题是独一无二的。 所以这个SQL转储文件的最后一个条目是这样的。

INSERT INTO `wp_posts` VALUES(2781, 3, '2013-01-04 17:24:19', '2013-01-05 00:24:19'.

我正在尝试将此值插入到表中。。。

INSERT INTO `wp_posts` VALUES(5, 5, '2005-04-11 09:54:35', '2005-04-11 17:54:35'

它给我一个错误,“列计数不匹配第1行的值计数”。 所以我不知道列和行在这里是如何应用的。

2781,3不是指行2781和列3吗? 5,5不是指第5行和第5列吗?


共3个答案

匿名用户

该错误意味着您提供的数据不如表wp_posts包含的列多。 现在DB引擎不知道要将数据放入哪些列。

要克服这个问题,必须提供要填充的列的名称。 示例:

insert into wp_posts (column_name1, column_name2)
values (1, 3)

查找表定义并查看要填充哪些列。

insert表示正在插入新记录。 您没有修改现有的一个。 请使用update执行此操作。

匿名用户

  1. 您错过了两个值或列名之间的逗号
  2. 您可以添加额外的值或额外的列名

匿名用户

您还应该研究新的触发器。

MySQL没有在错误中显示表名,因此您确实处于一个困难的境地。 下面是一个工作示例:

use test;
create table blah (id int primary key AUTO_INCREMENT, data varchar(100));
create table audit_blah (audit_id int primary key AUTO_INCREMENT, action enum('INSERT','UPDATE','DELETE'), id int, data varchar(100) null);
insert into audit_blah(action, id, data) values ('INSERT', 1, 'a');
select * from blah;
select * from audit_blah;
truncate table audit_blah;

delimiter //
/* I've commented out "id" below, so the insert fails with an ambiguous error: */
create trigger ai_blah after insert on blah for each row 
begin 
  insert into audit_blah (action, /*id,*/ data) values ('INSERT', /*NEW.id,*/ NEW.data);
end;//

/* This insert is valid, but you'll get an exception from the trigger: */
insert into blah (data) values ('data1');