PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgresql applica una combinazione unica di colonne a due vie

Una variante della soluzione di Neil che non necessita di un'estensione è:

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));

Tuttavia, la soluzione di Neil ti consente di utilizzare un numero arbitrario di colonne.

Facciamo entrambi affidamento sull'utilizzo di espressioni per costruire l'indice che è documentatohttps://www.postgresql.org/docs/current/indexes-expressional.html