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

And*_*dré 1 mysql sql

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

谢谢你的帮助.

Eze*_*uns 5

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

我们假设您有一张report桌子:

alter table report add unique index(user_id, content_id);
Run Code Online (Sandbox Code Playgroud)

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