【MySQL】テーブル作成時、text型にprimary key設定したら「ERROR 1170 (42000): BLOB/TEXT column 'column_name' used in key specification without a key length」と怒られた時の解決方法。
MySQLでtext型をprimary key に設定したらエラーになり実行ができなかったので
その時の、解決方法を記していきます。
1.CREATE文の実行
testテーブルの作成を行ないます。
※あまり使う事はないとは思いますが、「text」カラムにPRIMARY KEYの設定を行ないます。
-- MySQL CREATE TABLE test ( id INT(11) NOT NULL, text TEXT NOT NULL, PRIMARY KEY (text) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.エラー内容
PRIMARY KEYに設定した「text」カラムの長さが設定されていない。とエラーが出ています。
ERROR 1170 (42000): BLOB/TEXT column 'text' used in key specification without a key length
3.解決方法
下記の通り、PRIMARY KEYに長さを記述します。
PRIMARY KEY (text)
↓
PRIMARY KEY (text(255))
修正したSQL文を実行します。
-- MySQL CREATE TABLE test ( id INT(11) NOT NULL, text TEXT NOT NULL, PRIMARY KEY (text(255)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.13 sec)
無事実行できました!
最大が255までなので、それ以下の長さを設定しましょう。