【问题标题】:Adding Unique constraints for two fields and don't allow duplicate entries if both are repeating为两个字段添加唯一约束,如果两者都重复,则不允许重复条目
【发布时间】:2014-12-11 09:20:45
【问题描述】:

只有当两列重复相同的值时,有没有办法停止重复条目。

我正在使用 MySQL。

例如 我有一张表“投票”,字段是

id
vote
user_id
message_id

在此用户可以输入赞成或反对消息的投票。 我不希望用户为同一条消息添加多个投票 即如果 user_id 1 投票给 message_id 1 那么如果同一用户再次为同一消息投票,我不想允许这个重复过程。

我的意思是有没有办法为字段 user_id 和 message_id 设置唯一约束,并且如果 user_id 和 message_id 重复,则不允许插入行。

我知道我们可以使用 php 使用逻辑代码来阻止它。

我期待答案有没有办法只使用 mysql 来做到这一点。?

【问题讨论】:

  • 当然有,叫做复合唯一索引。更改表格并添加UNIQUE(user_id, message_id)。这样您就可以让 1 位用户为 1 条消息投票一次。

标签: php mysql


【解决方案1】:

这应该可行:

ALTER TABLE `table`
 ADD CONSTRAINT uc_user_message UNIQUE (user_id ,message_id )

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    相关资源
    最近更新 更多