私は2つのテーブルを持っています:
インシデント:
CREATE TABLE incidencies ( id_inc INT(7) ZEROFILL NOT NULL auto_increment PRIMARY KEY, empresa VARCHAR(40), maquina VARCHAR(20), tipus_inc VARCHAR(20), estat_mon VARCHAR(20), estat_inc VARCHAR(20), dia_inc DATE, hora_inc TIME, descripcio VARCHAR(200) ) CHARACTER SET utf8 engine=innodb;
コメント:
CREATE TABLE comentaris ( id_inc INT(7) ZEROFILL NOT NULL, id_com INT(3) ZEROFILL NOT NULL auto_increment, data_com DATE, hora_com TIME, comentari VARCHAR(999), PRIMARY KEY(id_inc, id_com), FOREIGN KEY (id_inc) REFERENCES incidencies (id_inc) ON DELETE CASCADE ON UPDATE CASCADE ) CHARACTER SET utf8 engine=innodb;
ご覧のとおり、 on COMENTARIS
tableID_INC
は外部キーで、元は auto_incremental ですが、もう on ではありませんCOMENTARIS
。
ここで、フィールドをID_COM
auto_incremental にして、両方を主キーにします。
テーブルは次のようになります。
ID_INC | ID_COM 001 | 001 001 | 002 001 | 003 002 | 004 003 | 005
問題は、MySQL がID_INC
auto_incremental フィールドとして検出したように見えることです。これはもうテーブルにはありません。COMENTARIS
ID_COM
auto_incrementalを作成しようとすると、次のエラー メッセージが表示されます。
エラー 1075 (42000): テーブル定義が正しくありません。自動列は 1 つしか存在できず、キーとして定義する必要があります
データベースはエンジンである必要がありますInnoDB
。
解決策はありますか?