MariaDB是否允许255个字符的唯一索引?

时间:2017-04-18 22:18:15

标签: mariadb

我从10.0.29-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04反复收到此错误   第81行的错误1071(42000):指定的密钥太长;最大键   长度是767个字节 目标行通常如下所示: name VARCHAR(255)NOT NULL UNIQUE, 将其更改为VARCHAR(63)会使错误消失。这是MariaDB中的错误吗?

2 个答案:

答案 0 :(得分:3)

要解决此错误,请执行以下操作之一

解决方法:执行

之一
  • 升级到5.7.7(或更高版本)以获得3072字节限制而不是767
  • 255更改为191 VARCHAR(假设您的值不会太长)
  • ALTER .. CONVERT TO utf8 - 但这不允许表情符号和一些中文
  • 使用“前缀”索引(不明智的)
  • 重新配置(适用于5.6.3 - 5.7.6)(下文)

重新配置5.6.3或5.5.14:

SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_large_prefix=1;
logout & login (to get the global values);
ALTER TABLE tbl ROW_FORMAT=DYNAMIC;  (or COMPRESSED)

(版本号基于Oracle的MySQL;此问题的MariaDB版本号不同。)

答案 1 :(得分:1)

要跟踪已接受的答案-更改为我找到的最简单的解决方案UTF8,可以在创建表时在MariaDb中使用以下行:

data