PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgresql applique une combinaison unique de colonnes dans les deux sens

Une variante de la solution de Neil qui n'a pas besoin d'extension est :

create table friendz (
  from_id int,
  to_id int
);

create unique index ifriendz on friendz(greatest(from_id,to_id), least(from_id,to_id));

La solution de Neil vous permet cependant d'utiliser un nombre arbitraire de colonnes.

Nous comptons tous les deux sur l'utilisation d'expressions pour construire l'index qui est documentéhttps://www.postgresql.org/docs/current/indexes-expressional.html