MySQL:Specified key was too long; max 1000

2025-05-28 06:28:37

1、mysql 错误提示:[SQ雉搽妤粲L]CREATE TABLE IF NOT EXISTS websites ( id bigint(20) unsigned 绿覆冗猩NOT NULL auto_increment, `date` varchar(100)NOT NULL default '0000-00-00', site varchar(255) NOT NULL default '', did varchar(255) , groupid varchar(255) NOT NULL , PRIMARY KEY (id), UNIQUE KEY date_site_groupid (`date`,site,groupid));[Err] 1071 - Specified key was too long; max key length is 1000 bytes

2、问题分析:建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:latin1 = 1 byte = 1 characteruft8 = 3 byte = 1 charactergbk = 2 byte = 1 character上步骤语句中索引总长度(100+255+255) * 2 = 1220 > 1000找到了问题所在。

3、问题解决:修改sql语句:CREATE TABLE IF NO哌囿亡噱T EXISTS websites ( id bigint(20) unsigned NOT NULL auto_increment, `date`varchar(50)NOT NULL default '0000-00-00', site varchar(255) NOT NULL default '', did varchar(50) , groupid varchar(50) NOT NULL , PRIMARY KEY (id), UNIQUE KEY date_site_groupid (`date`,site,groupid));这样问题就解决了。(^_^)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢