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

Postgresql erzwingt eine eindeutige Zwei-Wege-Kombination von Spalten

Eine Variante von Neils Lösung, die keine Erweiterung benötigt, ist:

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

Mit Neils Lösung können Sie jedoch eine beliebige Anzahl von Spalten verwenden.

Wir verlassen uns beide auf die Verwendung von Ausdrücken, um den Index zu erstellen, der unter https://www.postgresql.org/docs/current/indexes-expressional.html

dokumentiert ist