私は次のテーブルを持っています:
CREATE TABLE `OBL2`.`item` (
`itemID` INT NOT NULL AUTO_INCREMENT ,
`itemName` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`itemID`) ,
INDEX `itemName` (`itemName` ASC) );
CREATE TABLE `OBL2`.`subject` (
`subjectID` INT NOT NULL ,
`subjectName` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`subjectID`) );
さて、接続は多対多なので、各アイテムは多くのサブジェクトを持つことができ、各サブジェクトは多くのアイテムに関連付けることができます-接続テーブルを設定したいと思います。これは私のコードです:
CREATE TABLE `OBL2`.`itemsubjects` (
`itemID` INT NOT NULL ,
`subjectID` INT NOT NULL ,
PRIMARY KEY (`itemID`, `subjectID`) ,
INDEX `itemID_idx` (`itemID` ASC) ,
INDEX `subjectID_idx` (`subjectID` ASC) ,
CONSTRAINT `itemID`
FOREIGN KEY (`itemID` )
REFERENCES `OBL2`.`item` (`itemID` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `subjectID`
FOREIGN KEY (`subjectID` )
REFERENCES `OBL2`.`subject` (`subjectID` )
ON DELETE CASCADE
ON UPDATE CASCADE);
しかし、何らかの理由で3番目のテーブルのコードは受け入れられていません。エラーメッセージが表示されます:
エラー1005:テーブル'obl2.itemsubjects'を作成できません(errno:121)
インターネットでエラーについて読んだことがありますが、これはMYSQLの既知の問題であると書かれていますが、解決策はありません。
何かご意見は?