sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo crear un índice único donde el orden de las columnas no se tiene en cuenta (¿establecido?)

Puede crear un índice en una expresión, en este caso least() y greatest() :

create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));

Nota:hay una pequeña rareza si las columnas permiten NULL valores. En ese caso, el mismo valor solo se permitiría una vez, independientemente de la columna en la que se encuentre. Esto se puede solucionar con una expresión más complicada, si realmente es un problema.