MySQL“;列计数不为';t匹配值计数“;但计数确实相符

MySQL“;列计数不为';t匹配值计数“;但计数确实相符,mysql,Mysql,当我试图执行一个列计数不匹配的查询时,MySQL发出了这个错误。以下是表格的结构: mysql> desc S_3068; +-------------------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------

当我试图执行一个列计数不匹配的查询时,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是一个无符号的smallint,这对我来说没有任何意义

在这件事上的任何帮助都将不胜感激


编辑:错误是由与表关联的触发器引起的。有关详细信息,请参阅注释。

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

使用
INSERT
而不指定列,例如:
INSERT into s_3068(sfmid,datvalue…)值。。。(
是一种糟糕的编码风格。您应该始终明确说明列名MySQL的哪个版本?在5.0.24中看起来似乎是合理的。检查表上是否定义了任何触发器您是对的:有一个触发器与表关联,在另一个表上为值133而不是值132进行侧插入。与MySQL通常一样,更多带有错误信息的信息会有所帮助……无论如何,非常感谢!@FrançoisIngelrest-请利用这一机会发布解决方案,作为对您问题的回答,以便将来其他人可以使用它!我们很高兴您发现了错误,但如果其他人能够根据您的错误发现发生了什么,我们会更高兴经验