0

可能重复:
“指定的密钥太长;最大密钥长度为 1000 字节”

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 字节”?

4

1 回答 1

4

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

于 2012-09-26T19:52:35.890 回答