【发布时间】:2021-05-11 08:27:49
【问题描述】:
我正在尝试创建一个表,其中一个列将包含超过 5000 个字符的字符,并且我不希望此列的任何行重复,因此我使用主键来创建此列中的每一行已存在时不再保存
但问题是当我尝试使用 column_name VARCHAR(5500) Primary key 创建此列时,它给了我这个错误
Specified key was too long; max key length is 767 bytes
我搜索了很多,发现 InnoDB 引擎只接受 767 个字符作为最大长度,而 MYISAM 引擎接受 1000 个字符,但这对我没有帮助,因为此列可能包含超过 5000 个字符
我正在寻找的是一种创建列的方法,该列的任何行都不能重复并接受许多字符
CREATE TABLE data_table (
date_time VARCHAR(100),
message VARCHAR(5500) PRIMARY KEY
) ENGINE = MYISAM CHARACTER SET latin1
【问题讨论】:
-
似乎没有意义,您只需更改 1 个字符就不会被视为重复。
-
你能给我一些更有效的解决方案吗?
-
先运行
select?您不能索引 5000 个字符。 -
我发现
Memory引擎可以容纳 3072 个字符作为最大长度也许它可以工作,尽管我希望找到可以容纳更多的引擎或者如果没有限制 ???? -
另一个线程建议存储哈希。在这种情况下,您只需要担心哈希冲突。如果您的应用可以接受这种可能性。
标签: mysql indexing duplicates unique-constraint