こんにちは。
野中やすおです。
Laravelでマイグレーションを実行したときに以下のような外部キーに関するエラーが出たことがありませんか。エラーを解消するのに結構苦労したので、メモがてら共有します。
出てくるエラー
1 |
<span style="font-family: Lato;"><code>Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `users` add constraint `user_id_foreign` foreign key (`user_id`) references `users` (`id`))</code></span> |
対処方法
その場合には、外部参照するデータの型をbigIncrementsではなく、unsignedBigIntegerにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 外部参照先のテーブルの作成コード <span style="font-family: Lato;">Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('user_name')->comment("ユーザー名")->nullable(); }); // 外部参照するテーブルの作成コード Schema::create('items', function (Blueprint $table) { $table->bigIncrements('id'); $table->unsignedBigInteger('user_id')->comment("ユーザーID")->nullable(); $table->foreign('user_id')->references('id')->on('users'); }); // マイグレーション成功</span> |