kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

PHP・Laravelの勉強中

18:08
今日も、PHP・Laravelのvr.8を調べている。
PHP・Laravelのvr.8で自動増分IDを定義する「$table->id();」は
「$table->bigIncrements(‘id’)」 ( 符号なしBIGINTを使用した自動増分ID(主キー))
のことで、idは 符号なしBIGINTになるとのこと。
なので、これを外部キーとして使う時は
「$table->integer('user_id')->unsigned();」でなく
「$table->unsignedBigInteger('user_id');」にしないといけない。
自分が見ている参考資料がちょっと古いので、「$table->integer('user_id')->unsigned();」になっていたので、エラーが出た。
こういう、なんだか理由がわからないことを解決する時間はちょっと好き。
エラー:

  Illuminate\Database\QueryException 
  SQLSTATE[HY000]: General error: 1005 Can't create table `laravel-test`.`folders` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `folders` add constraint `folders_user_id_foreign` foreign key (`user_id`) references `users` (`id`))

PHP・LaravelのMigrationが面白い。テーブル自体をPHP・Laravelで管理し、登録したテーブル構造自体を何かに使っているのだろう。