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
  • 热门搜索
    风雨同舟什么意思 关于法律的知识 什么是减数 洛阳牡丹花什么时候开 背上有痣代表什么 维生素b1的作用及功能 石家庄有什么好玩的 fighting什么意思 揩油什么意思 什么是花柳病