列数が一致するクエリを実行しようとすると、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はunsignedsmallintであるため、私には意味がありません。
この問題に関する助けをいただければ幸いです。
編集:エラーは、テーブルに関連付けられたトリガーが原因で発生しました。詳細についてはコメントをご覧ください。