PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie erstelle ich einen eindeutigen Index, bei dem die Spaltenreihenfolge nicht berücksichtigt wird (festgelegt?)

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.