2009年2月11日水曜日

MySQLの TEXT型の列に INDEXを付ける

MySQLでTEXT型の列に普通にINDEXを付けようとするとエラーになる。
MySQL Error Number 1170
BLOB/TEXT column 'desc' used in key specification without a key length

が、長さを指定してINDEXを付ければOK。
ALTER TABLE `test`.`members` ADD INDEX `Index_2`(`desc`(100));

長さは255まで。それ以上だとWarningが出て、255になった。
Warning: Specified key was too long; max key length is 767 bytes

複合インデックスに絡めて定義はできないという話もあるが、手元のMySQL5.1では複合INDEXでも問題なくできた。

0 件のコメント:

コメントを投稿