MySQLエラー: 指定されたキーが長すぎます; 最大キー長は767バイトです


  1. VARCHARの長さを短くする: エラーメッセージが示すように、キーの最大長は767バイトです。そのため、VARCHAR列の長さを767バイト以下に制限することで問題を回避できます。例えば、VARCHAR(255)をVARCHAR(191)に変更するなどの方法です。

  2. インデックスのプレフィックス長を設定する: インデックスのプレフィックス長を指定することで、キーの長さを制限することができます。例えば、VARCHAR(255)の列にインデックスを作成する場合、インデックスのプレフィックス長を191に設定することで問題を回避できます。

  3. InnoDBのデフォルトのインデックス形式を変更する: InnoDBストレージエンジンを使用している場合、デフォルトのインデックス形式が「REDUNDANT」になっている可能性があります。これは、インデックスのキープレフィックス長が767バイトに制限される原因となります。デフォルトのインデックス形式を「DYNAMIC」または「COMPRESSED」に変更することで、キーの最大長を増やすことができます。