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.