#1071-指定的密钥太长;最大密钥长度为767字节

6ovsh4lw  于 2021-06-15  发布在  Mysql
关注(0)|答案(18)|浏览(491)

当我执行以下命令时:

ALTER TABLE `mytable` ADD UNIQUE (
`column1` ,
`column2`
);

我收到了这个错误信息:


# 1071 - Specified key was too long; max key length is 767 bytes

关于第1列和第2列的信息:

column1 varchar(20) utf8_general_ci
column2  varchar(500) utf8_general_ci

我想 varchar(20) 只需要21字节 varchar(500) 只需要501字节。所以总字节数是522,小于767。为什么我会收到错误信息?


# 1071 - Specified key was too long; max key length is 767 bytes
vs3odd8k

vs3odd8k16#

您可以添加一列md5的长列

flvlnr44

flvlnr4417#

在查询之前运行此查询:

SET @@global.innodb_large_prefix = 1;

这将使限制增加到 3072 bytes .

x9ybnkn6

x9ybnkn618#

我通过以下方法解决了此问题:

varchar(200)

替换为

varchar(191)

所有具有200个以上的唯一或主要varchar键都将它们替换为191或将它们设置为文本。

相关问题