Sie können einen Index für einen Ausdruck erstellen, in diesem Fall least()
und greatest()
:
create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));
Hinweis:Es gibt eine leichte Verrücktheit, wenn die Spalten NULL
zulassen Werte. In diesem Fall wäre derselbe Wert nur einmal erlaubt, unabhängig davon, in welcher Spalte er sich befindet. Dies kann mit einem komplizierteren Ausdruck behoben werden, wenn es tatsächlich ein Problem ist.