#1071 - Specified key was too long; max key length is 1000 bytes
mysqlでテーブルをcreate仕様と思ったら、上記のようなエラーが出た。
#1071 - Specified key was too long; max key length is 1000 bytes
「キーの長さが長すぎ。1000バイトまで。」とのこと。
この時、createしようとしたTABLEには、char(25)とvarchar(400)の2列を主キーとして付与するようにcreate文を記述していた。
そういや、char(25)の「25」って文字数だっけ?バイト数だっけ?と思ったのだが、調べてみると「文字数」であった。
で、その1文字の長さはcharacter-setによって変わるとのこと。
latin-1なら1文字=1バイトだし、utf8なら1文字=3バイト。
私の環境はutf8だったので、キーに使えるのは333文字ということだ。
試してみたら、確かに、キーの文字列に使えるのは333文字までだった。
なお、「各列1000byteまで」ではなく「キーの列長の合計が1000byteまで」なので注意。