この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2018-04-21 15:39:35

タイトル: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `~` add unique `~`(`~

エラー内容

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `~` add unique `~`(`~`))

 

発生条件と原因

767バイト以上を許容するカラムにインデックスを貼ろうとすると発生するエラー。

バイト数は文字コードに依存する。

 

対処法

・文字コードを変更する

例えばutf8mb4に対してutf8の方がバイト数が少ないので変更する

            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',

            ↓
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',

 

・カラムの許容バイト数を制限する

・large_prefixを使用する