Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes 错误分析

2020-03-27 / 无评论
报错原因:

如果使用的是utf8mb4,并且在长度超过191个字符的varchar列上有唯一索引,因为utf8mb4需要比utf8或latin1更多的存储空间。如果启用innodb_large_prefix(默认值),则对于使用DYNAMIC或COMPRESSED行格式的InnoDB表,索引键前缀限制为3072个字节。如果innodb_large_prefix被禁用,则任何行格式的表的索引键前缀限制为767字节。

解决办法

方法一、打开innodb_large_prefix以允许索引中的较大列。
方法二、设置有唯一索引varchar列字符串长度为191

注意

MySQL 5.7.7 默认启用innodb_large_prefix,Innodb_large_prefix,在MySQL 5.7.7中已弃用,并将在未来版本中删除。

无回应:“Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes 错误分析”

发表评论

电子邮件地址不会被公开。 必填项已用*标注