mysql:Specified key was too long; max key length is 767 bytes

来源:互联网 发布:淘宝数码商城 编辑:程序博客网 时间:2024/06/04 19:57

Specified key was too long; max key length is 767 bytes

这个报错是因为mysql的“字符串类型”(varchar、char等)字段作为索引时,有一个约束单个索引字段存储长度不能超过767字节。

按照表为utf8mb4字符集时,一个字符需要4个字节存储。那么最大定义索引前缀为 767/4=191.即字段a varchar(500)要建立索引时需要定义前缀索引 a(191),不能超过191的一个值。

其他utf8为3个字节存储一个字符,gbk为2个字节存储一个字符,依次类推得到对应字符串类型字段的前缀索引长度修正即可。

示例:add key idx_xxx (content(120),type);


阅读全文
0 0
原创粉丝点击