Puoi creare un indice su un'espressione, in questo caso least()
e greatest()
:
create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));
Nota:c'è una piccola stranezza se le colonne consentono NULL
valori. In tal caso, lo stesso valore sarebbe consentito solo una volta, indipendentemente dalla colonna in cui si trova. Questo può essere risolto con un'espressione più complicata, se in realtà è un problema.