MySQL - 试图在长文本字段上获取唯一键

标签 mysql

我正在尝试按成员、日期和问题在 MySQL 中添加约束,以便同一用户每天不能多次询问同一问题。

alter table questions add UNIQUE INDEX three_UNIQUE ( member_id , question , date );

但由于问题字段是长文本,我收到此错误:

ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes

有什么办法可以解决这个问题?

谢谢!!

最佳答案

您可以对问题进行哈希处理,并将哈希值存储为一个字段。由于散列值会小得多,您将能够对其添加约束。很可能没有两个独特的问题会散列为相同的值。

注意:当问题只有细微差别时,您会遇到与此相同的问题。

关于MySQL - 试图在长文本字段上获取唯一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150885/

相关文章:

php - 如何存储大部分为空的数据?

javascript - NodeJS + MySql 嵌套查询

mysql - Where 语句 : isolating matching values in one column based on the attributes of another

mysql - 如何从MySQL表中随机选择满足特定条件的多行?

mysql - 删除 sql : you can't specify target table 'table' for update in FROM clause 中的重复项

mysql - Pentaho Kettle 脚本选项

mysql - LOAD DATA INFILE 返回 0 行受影响,MySQL 8

mysql选择事件作为多条记录

c# - MySQL 从流中读取失败

php - Session_Status fatal error