PrismaCode

Notes on programming.

Laravelでユニーク制約つけたらunique keyが長すぎた件

30 November, 2022

作成日:2022/11/30

更新日:2022/11/30

どうした??

  • ユニーク制約かけたい.
  • マイグレーション実行したらエラーが出た.

マイグレーションファイル

$table->unique(['hogehoge_id', 'fugafuga_piyopiyo_id']);

動かしたらエラーが出た.

SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'hogehoge_user_id_fugafuga_piyopiyo_user_id_unique' is too
   long ...

長すぎるってさ(´・ω・`)

解決策

ユニーク制約に名前をつけるといける.名前をつけないと Laravel 側で決めたルールに従って名前が決まるため,長すぎてエラーになることがある.

$table->unique(['hogehoge_id', 'fugafuga_piyopiyo_id'])->name("hogehoge_id_fugafuga_piyopiyo_id_unique");

まとめ

テーブル名やカラム名が長いときは名前をつけておくとスムーズにいける!

以上だ( `・ω・)b

#Laravel