MySQL 外部キーを設定しようとしていないのに’#1215 – 外部キー制約を追加できません。’が発生する場合

テーブルを作成しようとしているだけなのに、’外部キー制約を追加出来ません。’メッセージが表示されてテーブルを作成させてもらえない時の確認項目の1つ。

レアなケースなので参考になる人はあまりいないと思われるが、一応メモ。

例えば、こんなテーブルがあったとして、articlesテーブルのmember_idは、membersテーブルのidを外部制約としているとする。

membersテーブル
・id
・name

articlesテーブル
・id
・member_id
・title

この状態で、membersテーブルを1度削除する。そして、membersテーブルを再度create(insertはせずにcreateのみ)しようとすると、‘#1215 – 外部キー制約を追加できません。’が発生する。

この場合の解決方法は、articlesテーブルの外部制約を削除してから、membersテーブルをcreateすればOK。

しかし、membersテーブルを削除したのに、外部キー制約の設定が残っているのが不思議だ。。。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です