报错原因:
如果使用的是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 错误分析”