MySQL "Column count doesn' t 匹配值计数“但计数确实匹配

标签 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 是一个无符号的 smallint,这对我来说没有任何意义。

如有任何帮助,我们将不胜感激。

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

最佳答案

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

关于MySQL "Column count doesn' t 匹配值计数“但计数确实匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10967063/

相关文章:

php - 重置密码时间调查

mysql - 在存储过程中迭代选择查询

mysql - 如何在1台win 7操作系统的机器上运行2个mysql服务?

mysql - mysql 中的复杂旋转

Mysql where 和 multiple like 不工作

java - 引发异常 [com.mysql.jdbc.CommunicationsException : Communications link failure due to underlying exception:

php - 无法在 Codeigniter 中检索两个时间范围之间的数据

mysql - 从 Sql 数据库迁移到 NoSql 数据库的限制

php - 将两个 mysql 查询组合成一个 json 数组 in php

mysql - 如何在不使用子查询的情况下过滤重复数据