本文介绍了SQL 错误 #1071 - 指定的键太长;最大密钥长度为 767 字节的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
CREATE TABLE wp_locations (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`city` VARCHAR(255) NOT NULL,
`name` VARCHAR(255) NOT NULL,
CONSTRAINT `city_name` UNIQUE (`city`, `name`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
我收到一个 sql 错误 '#1071 - 指定的键太长;最大密钥长度为 767 字节'
I got an sql error '#1071 - Specified key was too long; max key length is 767 bytes'
我做错了什么?
推荐答案
MySQL 总是为 UTF8
字段保留最大数量,它是 4 个字节,所以 255 + 255
使用您的 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
;您已超过 767 个最大密钥长度限制.
MySQL always reserves the max amount for a UTF8
field which is 4 bytes so with 255 + 255
with your DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
; you are over the 767 max key length limit.
您只能减少单个 varchar 长度或不使用复合键.
You can only reduce the single varchar length or don't use a composite key.
这篇关于SQL 错误 #1071 - 指定的键太长;最大密钥长度为 767 字节的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!