Mysql workbench のER図作成から、テーブルを起こそうとしています。
エラーが出ました。
発生している問題・エラーメッセージ
ERROR: Error 1822: Failed to add the foreign key constraint. Missing index for constraint 'software' in the referenced table 'licence'
SQL
1CREATE TABLE IF NOT EXISTS `licemce_M`.`Licence` ( 2 `licence_id` VARCHAR(45) NULL, 3 `software` VARCHAR(45) NULL, 4 `contract_no` VARCHAR(45) NULL, 5 `expire_date` VARCHAR(45) NULL, 6 `purchase_date` VARCHAR(45) NULL, 7 `reseller` VARCHAR(45) NULL, 8 `numbers` INT NULL, 9 PRIMARY KEY (`licence_id`, `software`)) 10ENGINE = InnoDB; 11 12CREATE TABLE IF NOT EXISTS `licemce_M`.`version` ( 13 `product_key` VARCHAR(45) NOT NULL, 14 `version` VARCHAR(45) NULL, 15 `licence_id` VARCHAR(45) NULL, 16 `software` VARCHAR(45) NULL, 17 PRIMARY KEY (`product_key`), 18 UNIQUE INDEX `product_key_UNIQUE` (`product_key` ASC) VISIBLE, 19 INDEX `licence_id_idx` (`licence_id` ASC) VISIBLE, 20 INDEX `software_idx` (`software` ASC) VISIBLE, 21 CONSTRAINT `licence_id` 22 FOREIGN KEY (`licence_id`) 23 REFERENCES `licemce_M`.`Licence` (`licence_id`) 24 ON DELETE NO ACTION 25 ON UPDATE NO ACTION, 26 CONSTRAINT `software` 27 FOREIGN KEY (`software`) 28 REFERENCES `licemce_M`.`Licence` (`software`) 29 ON DELETE NO ACTION 30 ON UPDATE NO ACTION) 31ENGINE = InnoDB;
試したこと
ここに問題に対して試したことを記載してください。
My workbench
ここにより詳細な情報を記載してください。
SQLも一応コードですのでマークダウンのcode機能にてご提示ください。
でないと既に見てお分かりのようにマークダウンの別の機能が働いて読みづらくなってしまっています。
バージョンが関わっているかもしれないので、失敗した方の
mysqlのバージョンを提示してください
コードは https://teratail.com/help/question-tips#questionTips3-7 の [コード] に修正してください。
Server version: 8.0.17 MySQL Community Server - GPL
とありました
code 機能にて書き直しました
回答2件
あなたの回答
tips
プレビュー