表格中有两列:Object1
和Object2
。
我想让pair(Object1
,Object2
)以一种不允许插入两行的方式唯一(
Object1 = 1, Object2 = 2
Object1 = 2, Object2 = 1
答案 0 :(得分:2)
您可以在表达式上创建索引,在本例中为least()
和greatest()
:
create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));
注意:如果列允许NULL
值,则会有一点奇怪。在这种情况下,相同的值只允许一次,无论它在哪一列。如果它实际上是一个问题,可以用更复杂的表达式修复。