sql >> Base de Datos >  >> RDS >> PostgreSQL

Restricción única de postgresql para cualquier número entero de dos columnas (o de una matriz)

Puede usar la restricción de exclusión en la tabla junto con intraray para realizar rápidamente la búsqueda de matrices superpuestas:

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