【问题标题】:why this error occur #1071 - Specified key was too long; max key length is 1000 bytes? [duplicate]为什么会出现此错误 #1071 - 指定的密钥太长;最大密钥长度为 1000 字节? [复制]
【发布时间】:2012-09-18 12:36:37
【问题描述】:

可能重复:
“Specified key was too long; max key length is 1000 bytes”

SQL 查询:

CREATE TABLE  `freecomputermarket`.`Members` (

`ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`UserName` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`Email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`Password` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`BirthDate` DATE NOT NULL ,
`RegisterationDate` DATE NOT NULL ,
`ActivationCode` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`ActivationLink` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`IsActive` BIT( 0 ) NOT NULL ,
`Gender` CHAR( 6 ) NOT NULL ,
UNIQUE (
`UserName` ,
`ActivationCode` ,
`ActivationLink`
)
) ENGINE = MYISAM

当我执行此查询时,出现错误“#1071 - 指定的密钥太长;最大密钥长度为 1000 字节”?

【问题讨论】:

标签: mysql


【解决方案1】:

UNIQUE 索引中有三个 255 个字符的 UTF8 列。每个 UTF8 字符最多可以占用 3 个字节,因此每列最多可以占用 765 个字节,这使得整个索引总共需要 2295 个字节,如错误所示,超过了 1000 个字节的限制。

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 1970-01-01
    • 2012-02-03
    • 2017-02-27
    • 2012-05-25
    • 2015-06-22
    • 2012-08-04
    相关资源
    最近更新 更多