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

vincolo univoco postgresql per qualsiasi numero intero da due colonne (o da array)

Puoi utilizzare il vincolo di esclusione sulla tabella insieme a intarray per eseguire rapidamente la ricerca di array sovrapposti:

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}).