MySQL在文本列上的UNI键似乎只查看要测试唯一性的前255个字符。如果有两个字符串以相同的255个字符开头,则不能将它们都添加到此表中。
有什么办法可以克服这个问题吗?
我输入这个字段的原因是为了确保唯一性,而不管查询(这些查询不在我的控制范围内),而不是为了性能。
发布于 2013-09-18 12:52:27
您不能在MySQL中索引键长度大于MySQL 4.1.2之前的255个符号 / 更高版本的1000字节(InnoDB为767字节)的文本字段--并且无法在本机克服这一问题。
最简单的解决方案是计算md5哈希并将其存储在另一列中,然后通过它创建唯一的索引,并创建一个触发器 before insert & before update,它将自动为您插入md5。如果您正在运行MySQL服务器4.x -那么您需要自己处理(因为没有可用的触发器)
https://stackoverflow.com/questions/18872667
复制相似问题