小编典典

如何在不考虑列顺序的情况下创建唯一索引(设置?)

sql

我在表格中有两列:Object1Object2。我想以不允许插入两行的方式使对(Object1Object2)唯一:

Object1 = 1, Object2 = 2
Object1 = 2, Object2 = 1

阅读 164

收藏
2021-04-07

共1个答案

小编典典

在这种情况下least(),您可以在表达式上创建索引greatest()

create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));

注意:如果各列允许NULL值,则有些奇怪。在那种情况下,无论位于哪个列中,相同的值都只能被允许一次。如果这实际上是一个问题,则可以使用更复杂的表达式来解决。

2021-04-07