mysql - SQL 错误 #1071 - 指定的键太长;最大 key 长度为 767 字节

标签 mysql

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 - 指定的键太长;最大 key 长度为 767 字节'

我做错了什么?

最佳答案

MySQL 始终为 UTF8 字段保留最大数量,该字段为 4 个字节,因此对于 255 + 255 和您的 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;您超过了 767 个最大 key 长度限制。

只能减少单个varchar长度或者不使用组合键。

关于mysql - SQL 错误 #1071 - 指定的键太长;最大 key 长度为 767 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40660396/

相关文章:

mysql - 将两个 MySQL 查询合并为一个

mysql - 数据模型: Having separate table for a field vs having it as a column in the main table

mysql - 如何为在 Mysql 中创建的用户分配连接角色

mysql 用 null 连接表

mysql - 如何解决 MySQL 中的#1064 错误?

PHP从表中获取所有结果,不是一遍又一遍地获取相同的ID吗?

MySQL 服务器每秒只向我发送 300 行

mysql - Datanucleus JDO 设置字段为空

php - MySQL/PHP/JS 动态填充下拉菜单

MySQL Group By 和 Sum 其它列的总值