我对当前的问题有点困难
某个成员与另一个成员匹配 - 它只能出现一次。
说我们有一个名为Member的表和另一个名为Match
的表 Member
-------------
| id | name |
-------------
| 1 | bob |
| 2 | tim |
Match
------------------------
| memberid | requestid |(memberid is a foreign key to member same as requestid)
-------------------------
| 1 | 2 |
然而现在请求来自memberid 2并且它应该拒绝它,我试图找到该类型的约束或索引的名称。这是唯一/匹配但不重要的是哪一列。
所以这应该是无效的
Match
------------------------
| memberid | requestid |(memberid is a foreign key to member same as requestid)
-------------------------
| 1 | 2 |
| 2 | 1 |
我唯一的想法是在memberid <> requestid
添加约束。但我认为可能有更好的方法
答案 0 :(得分:1)
如果您尝试只有一行对,那么您可以使用唯一约束。关键是在表达式上构建唯一索引:
create unique index unq_matches_memberid_requestid
on matches(least(memberid, requestid), greatest(memberid, requestid));