ERROR 1170 (42000): BLOB/TEXT column 'category1' used in key specification without a key length

作者:linux120 发布时间:December 6, 2012 分类:服务器维护

今天在帮一位客户(www.52verycd.com)将2.7G的SQLITE3文件转成Mysql5.1,具体迁移过程文章另撰,在导完数据以后在创建Mysql索引的时候发生如下错误:

mysql> CREATE INDEX cat1updtbriefttlidx on verycd (category1,updtime,brief,title);
ERROR 1170 (42000): BLOB/TEXT column 'category1' used in key specification without a key length

错误原因在于sqlite中对text类型做索引时没有附加要求,但是Mysql中text必须指定长度,这样建立索引的时候才会对长度有所约束。

解决办法:
ALTER TABLE将TEXT字段长度约束一下。