0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【エラー対応】General error: 1215 Cannot add foreign key constraint【Laravel】

Posted at

MySQLの外部キー制約を追加する際にエラーが出ました。

General error: 1215 Cannot add foreign key constraint

解決するのに30分程度も使ってしまったので、、、、対処方法をここにまとめます。

(環境:PHP8.0/Laravel/MySQL)

確認①:型の不一致

データ型があっていないと、同様のエラーが出ます。

  • idの片側にunsignedがついている
  • smaillintとtinyintをつなげようとしている

データ型を合わせるために、外部キーに指定するidを修正してみましょう。

確認②:Migrationファイルの順番は正しいか

今回のエラーの原因はこちらでした。

Laravelでは、CREATE TABLEを使わずにPHPで定義されたファイルを作成・実行して、MySQLにテーブルを作ります。
このとき、CREATE TABLEされる実行順は、日付の古い順になります。まだ生成されていないテーブルにリレーションを貼ろうとするとエラーになってしまうんです、、。

今回は解決方法として、ファイル名を変更(YYYY_MM_DD)して、順番を整理しました。

php artisan migrate:fresh

で、問題なく通りました。

まとめ

General error: 1215 Cannot add foreign key constraint

今回のエラーが起きたら確認すること。

  • データ型はあっているか
  • migrationファイルの順番は正しいか

この記事が、誰かのエラー解消の時間削減につながれば幸いです...。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?