AUTO_INCREMENTのあるテーブルにinsertできません(長文)
mysql5.0.27(RedhatLinux 9)です。
属性のひとつがAUTO_INCREMENTになっているテーブルhogeに、データをinsertしたいのですが、「コラムの数が合致しない」というエラーで、insertできません。
Webをいろいろ漁って、AUTO_INCREMENTの属性は明示的に指定しないようだと理解しました。冗長で申し訳ないのですが、エラーが出た状態のものを、そのまま掲載させていただきます(テーブル名や属性名のみ変更しました)。
状態をまとめると、以下のようになります。
・下記のテーブル定義で、テーブルは普通にcreateできた。
・descで確認しても、ちゃんとテーブルはできているよう。
・下記のinsert文で、その下のエラーメッセージが出て、データを登録できない。
・どうみても、コラム数は合っている(と思う)。
・下記のテーブル定義の属性数を適当に減らす(id, item1, item4, item6くらいにする)と、エラーが出ずデータがちゃんとinsertできる。
私はなにか、とんてもない勘違いをしているのでしょうか?かなりの時間試行錯誤しているのですが、一向にわかりません。。。
===== テーブル定義 =====
CREATE TABLE hoge (
id MEDIUMINT UNSIGNED AUTO_INCREMENT NOT NULL,
item1 VARCHAR (64) NOT NULL,
item2 VARCHAR (64) NOT NULL,
item3 VARCHAR (32) NOT NULL,
item4 VARCHAR (64),
item5 VARCHAR (64),
item6 VARCHAR (16) NOT NULL,
CONSTRAINT PK_HOGE PRIMARY KEY (id)
) type=innodb;
CREATE INDEX IDX_HOGE_1 ON hoge(item1);
CREATE INDEX IDX_HOGE_2 ON hoge(item2);
CREATE INDEX IDX_HOGE_3 ON hoge(item3);
CREATE INDEX IDX_HOGE_4 ON hoge(item4);
CREATE INDEX IDX_HOGE_5 ON hoge(item6);
===== descの出力 =====
+---------------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-----------------------+------+-----+---------+----------------+
| id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| item1 | varchar(64) | NO | MUL | | |
| item2 | varchar(64) | NO | MUL | | |
| item3 | varchar(32) | NO | MUL | | |
| item4 | varchar(64) | YES | MUL | NULL | |
| item5 | varchar(64) | YES | | NULL | |
| item6 | varchar(16) | NO | MUL | | |
+---------------------+-----------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
===== insert文 =====
insert into hoge (item1, item2, item3, item4, item5, item6)
values ( 'data1','data2', 'data3', 'data4', 'data5', 'data6');
===== エラーメッセージ =====
ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
長文大変申し訳ありません。よろしくお願いします。
お礼
「nul」ではなく、「MUL」です。KEY項目属性のひとつだと思うのですが。