PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

contrainte unique postgresql pour tout entier de deux colonnes (ou d'un tableau)

Vous pouvez utiliser la contrainte d'exclusion sur la table avec intraray pour effectuer rapidement une recherche de tableaux qui se chevauchent :

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