MySQLでtext型の列にインデックスを作成する場合、サイズを指定する必要があります。
例えば、以下の内容のテーブルを作成します。
1 |
$ CREATE TABLE table01 ( id int not null primary key auto_increment, name text ); |
サイズの指定をせずにインデックスを作成するとエラーになります。
1 2 |
mysql> CREATE INDEX index_name ON table01(name); ERROR 1170 (42000): BLOB/TEXT column 'name' used in key specification without a key length |
そこでサイズを指定します。
以下の指定では、name列の最初の100文字を使用したインデックスが作成されます。
1 |
mysql> CREATE INDEX index_name ON table01(name(100)); |