Quantcast
Channel: 一言多いプログラマーの独り言
Viewing all articles
Browse latest Browse all 846

MySQLで「Specified key was too long; max key length is 767 bytes」のエラー

$
0
0
MySQLで「Specified key was too long; max key length is 767 bytes」のエラーです。文字コードの「utf8mb4」がいけないのかと思い、「utf8」に変更してデータベースを作り直しても改善せず。次に「varchar(255)」のフィールドがキーになっていることが原因だろうと思い、「varchar(20)」「varchar(50)」「varchar(100)」など、可能な限り切り詰めたら、うまくデータベースを作成、復元できました。

Laravel5でマイグレーションする場合は、サイズを指定すると良いと思います。

$table->string('name', 50);
$table->string('email', 100)->unique();

参考サイト
MySQLのUNIQUEなINDEXには長さ767byteまでしか使えない件と対策((tanamonの日記さん)
Mysqlでユニーク制約をつけたvarcharは767byteまでしか入らない話(Qiita)
Laravel 5.4: Specified key was too long error(Laravel News)

Viewing all articles
Browse latest Browse all 846

Latest Images

Trending Articles