Executar funções em create table em postgresSQL

image_pdfimage_print

As vezes queremos fazer uma checagem quando alguém tentar inserir um registro na table que está sendo criada. Podemos criar e usar uma function para fazer esta checagem. Veja o exemplo abaixo:

CREATE FUNCTION testcheckabc(name varchar) RETURNS BOOLEAN AS $$
    BEGIN 
        RETURN (name='a' OR name='b' OR name='c'); 
    END; $$ LANGUAGE plpgsql;
CREATE TABLE testtableabc (
    abc varchar(1) CONSTRAINT testconstraintabc CHECK ( testcheckabc(abc) )
);

Se após executarmos este código acima tentamos fazer algo como

INSERT INTO testtableabc VALUES ('d');

Obteremos um erro.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!