MySQL:Specified key was too long; max 1000

 时间:2026-02-13 11:12:09

1、mysql 错误提示: 

[SQL]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 character uft8 = 3 byte = 1 character gbk = 2 byte = 1 character 

上步骤语句中索引总长度(100+255+255) * 2 = 1220 > 1000

找到了问题所在。

3、问题解决:

修改sql语句:

CREATE TABLE IF NOT 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)

);

这样问题就解决了。(^_^)

  • 制作Win7_64位内存系统ramos(步骤超详)
  • Windows Server2012怎么搭建DHCP服务器
  • 360怎么关闭445端口
  • Windows server 2012禁止远程计算机管理服务器
  • 如何下载Windows XP Mode
  • 热门搜索
    长江三角洲旅游 旅游管理专业排名 三天旅游 华西村旅游 青岛 旅游 000978桂林旅游 全国假日旅游部际协调会议办公室 武汉旅游团 旅游胜地图片 乌鲁木齐旅游景点大全