Du kan skapa ett index på ett uttryck, i det här fallet least()
och greatest()
:
create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));
Notera:det finns en liten konstighet om kolumnerna tillåter NULL
värden. I så fall skulle samma värde bara tillåtas en gång, oavsett i vilken kolumn det finns. Detta kan fixas med ett mer komplicerat uttryck, om det faktiskt är ett problem.