エラー: 制約名が重複しているためテーブルを作成できません
MySQL データベースを WAMP サーバーにフォワード エンジニアリングする際に、エラーが発生しました「エラー 1005: テーブル 'aquaticstar.link' を作成できません (エラー番号: 121)。」このエラーは、指定された名前のテーブルがデータベースにすでに存在していることを示しています。
さらに調査した結果、問題は重複した制約名のことに関連していることが判明しました。具体的には、Link テーブルには、他のテーブルにも存在する id およびlesson_id という名前の外部キー制約が含まれています。この名前の競合により、データベースはリンク テーブルを作成できません。
この問題を解決するには、リンク テーブル内の外部キー制約の名前を一意の名前に変更する必要があります。これは、実行されたスクリプトの次の行を変更することで実現できます:
CONSTRAINT `id` FOREIGN KEY (`id` ) REFERENCES `Students` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `lesson_id` FOREIGN KEY (`lesson_id` ) REFERENCES `Schedule` (`lesson_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
たとえば、id 制約の名前を Student_id に変更し、lesson_id 制約の名前をschedule_lesson_id に変更できます。
CONSTRAINT `student_id` FOREIGN KEY (`id` ) REFERENCES `Students` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `schedule_lesson_id` FOREIGN KEY (`lesson_id` ) REFERENCES `Schedule` (`lesson_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
制約の名前を変更したら、スクリプトを再実行してリンク テーブルを正常に作成します。
以上が制約名が重複しているため MySQL テーブルを作成できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。