sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql framtvingar unik tvåvägskombination av kolumner

En variant på Neils lösning som inte behöver en förlängning är:

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

Neils lösning låter dig dock använda ett godtyckligt antal kolumner.

Vi förlitar oss båda på att använda uttryck för att bygga indexet som är dokumenterat https://www.postgresql.org/docs/current/indexes-expressional.html



  1. Hur REGEX_REPLACE()-funktionen fungerar i MySQL

  2. Åtgärda "FEL: saknar FROM-klausulpost för tabell" i PostgreSQL när du använder UNION, EXCEPT eller INTERSECT

  3. CAST vs ssis dataflöde implicit konverteringsskillnad

  4. Hur man ändrar storleken på en kolumn i SQL Server (T-SQL)