MySQL“列计数与值计数不匹配”但计数与DOES匹配

时间:2012-06-10 07:37:32

标签: mysql

当我尝试执行列计数匹配的查询时,MySQL发出此错误。这是表格的结构:

mysql> desc S_3068; 
+-------------------+----------------------+------+-----+---------+-------+ 
| Field             | Type                 | Null | Key | Default | Extra | 
+-------------------+----------------------+------+-----+---------+-------+ 
| SfmID             | smallint(5) unsigned | NO   | PRI | 1       |       | 
| DatValue          | float                | NO   |     | 0       |       | 
| DatRawValue       | int(10) unsigned     | NO   |     | 0       |       | 
| DatTime           | int(10) unsigned     | NO   | PRI | 0       |       | 
| DatBusOrder       | tinyint(3) unsigned  | NO   | PRI | 1       |       | 
| DatFormulaVersion | tinyint(3) unsigned  | NO   |     | 0       |       | 
+-------------------+----------------------+------+-----+---------+-------+ 
6 rows in set (0.00 sec) 

执行此查询时出现上述错误:

mysql> insert ignore into S_3068 values (133, 15.82, 5542, 1339309260, 0, 1); 
ERROR 1136 (21S01): Column count doesn't match value count at row 1 

如您所见,列数与值计数匹配。现在更令人费解的是,查询在SfmID = 132:

时工作得非常好
mysql> insert ignore into S_3068 values (132, 15.82, 5542, 1339309260, 0, 1); 
Query OK, 1 row affected (0.00 sec) 

SfmID是一个无符号的小号,对我没有任何意义。

非常感谢任何有关此事的帮助。

编辑:错误是由与表关联的触发器引起的。有关更多信息,请参阅评论。

1 个答案:

答案 0 :(得分:3)

错误是由与表关联的触发器引起的,在另一个表上执行值插入值133而不是值132.MySQL发出的错误是关于另一个表(列数确实是错误的)和不是我插入数据的主表。

相关问题