首页 文章

SQL错误#1071 - 指定的密钥太长;最大密钥长度为767字节

提问于
浏览
2
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字节'

我究竟做错了什么?

2 回答

  • 2

    MySQL始终保留 UTF8 字段的最大金额,即4个字节,所以 255 + 255DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;你超过767最大密钥长度限制 .

    您只能减少单个varchar长度或不使用复合键 .

  • 5

    我有同样的问题 . 我已将这些行添加到名为umb4-support.cnf的/etc/my.conf.d目录中的新conifg文件中

    [mysqld]
    innodb_large_prefix=true
    innodb_file_format=barracuda
    innodb_file_per_table=true
    

    重新启动maria db服务后,我的导入脚本运行时没有出现此问题 . 一帆风顺!

相关问题