小编Ema*_*nes的帖子

MariaDB 10.1.38 - 指定的键太长;最大密钥长度为 767 字节

我有一个包含 3 列的表:

id(int 11)  | user_id(int 4) | title(varchar 512) 
____________|________________|___________________
     1      |        3       | Thing X
     2      |        3       | Something Else
     3      |        5       | Thing X
Run Code Online (Sandbox Code Playgroud)

我需要在user_id和之间进行独特的组合title。为此,我正在使用这个简单的查询:

ALTER TABLE posts ADD UNIQUE `unique_post`(`user_id`, `title`)
Run Code Online (Sandbox Code Playgroud)

title列的字符集是utf8mb4_unicode_ci. 数据库是使用字符集创建的utf8mb4

CREATE DATABASE learning_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

表类型是InnoDB.

我试图设置一些全局变量:

SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=on;
SET GLOBAL innodb_large_prefix=on;
Run Code Online (Sandbox Code Playgroud)

但我遇到了同样的错误1071

Specified key was too long; max …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb index

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

index ×1

mariadb ×1

mysql ×1