【发布时间】:2016-07-11 15:57:56
【问题描述】:
我需要在 Mysql 5.7.13 数据库的表的 varchar(500) 列上维护唯一索引。
字符集设置为 UTF8,因此据我所知,字符数限制为 255,因为我使用的是 innodb 引擎。
我也知道存在选项 innodb_large_prefix 应该将维度扩展到 3072 字节。我尝试配置我的数据库以支持此功能,但它不起作用。我尝试插入两个相同的 500 个字符长的行,最后一个字符不同,但我得到一个唯一约束错误,因为我假设对前 255 个字符执行唯一性检查。
我错过了什么吗?我是否误解了此选项的目的?
P.S 我启用了 mysql 文档中指出的 innodb_file_format = Barracuda。
感谢您的帮助。 西蒙娜
【问题讨论】:
-
您的表格的行格式是什么?它在文档中说它仅适用于动态或压缩的行格式,所以可能就是这样。
-
@rlanvin 我首先将行格式更改为“动态”,然后将
COMPACT更改为,但结果是一样的。唯一约束是在前 255 个字符上计算的。
标签: mysql innodb unique-constraint unique-index