Możesz utworzyć indeks na wyrażeniu, w tym przypadku least()
i greatest()
:
create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));
Uwaga:jest jedna drobna dziwność, jeśli kolumny zezwalają na NULL
wartości. W takim przypadku ta sama wartość byłaby dozwolona tylko raz, niezależnie od kolumny, w której się znajduje. Można to naprawić za pomocą bardziej skomplikowanego wyrażenia, jeśli faktycznie stanowi to problem.