当我尝试执行列计数匹配的查询时,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是一个无符号的小号,对我没有任何意义。
非常感谢任何有关此事的帮助。
编辑:错误是由与表关联的触发器引起的。有关更多信息,请参阅评论。
答案 0 :(得分:3)
错误是由与表关联的触发器引起的,在另一个表上执行值插入值133而不是值132.MySQL发出的错误是关于另一个表(列数确实是错误的)和不是我插入数据的主表。