如何确保两行不具有相同的值

时间:2014-01-05 22:51:51

标签: mysql sql

我有一个包含多个列的表,我想确保两个特定的列没有相同的值。实际上我不想让用户多次报告错误。在插入报告之前,我想确保同一个用户没有报告相同的内容,因此不应该有一个具有相似用户ID和内容ID的行。 我的想法是发送一个查询来检查它是否返回结果,如果没有,则插入报告。但必须有更好的方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

您可以在用户ID和内容ID上创建复合索引,并对该索引具有UNIQUE约束。

我们假设你有一个report表:

alter table report add unique index(user_id, content_id);

现在,当您尝试插入复制用户和内容ID对的记录时,您将收到一个错误,您可以在应用程序代码中正确处理该错误。