本文介绍了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 字节的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 13:30