Vous pouvez créer un index sur une expression, dans ce cas least()
et greatest()
:
create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));
Remarque :il y a une légère bizarrerie si les colonnes autorisent NULL
valeurs. Dans ce cas, la même valeur ne serait autorisée qu'une seule fois, quelle que soit la colonne dans laquelle elle se trouve. Cela peut être résolu avec une expression plus compliquée, si c'est réellement un problème.