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

postgresql Unique Constraint für jede ganze Zahl aus zwei Spalten (oder aus einem Array)

Sie können die Ausschlussbeschränkung für Tabellen zusammen mit Intarray verwenden, um schnell nach überlappenden Arrays zu suchen:

CREATE EXTENSION intarray;
CREATE TABLE test (
    a int[],
    EXCLUDE USING gist (a gist__int_ops WITH &&)
);

INSERT INTO test values('{1,2}');

INSERT INTO test values('{2,3}');
>> ERROR:  conflicting key value violates exclusion constraint "test_a_excl"
>> DETAIL:  Key (a)=({2,3}) conflicts with existing key (a)=({1,2}).