Cara,
Fiz alguns testes aqui, e pelo que notei, não da EXCEPTION quando o
INSERT é feito FORA da FUNCÃO (No caso, o que dispara a TRIGGER) ,
para dar EXCEPTION, o INSERT deve estar dentro da FUNCAO (Posso estar
errado, mas foi o que os testes apontaram).
Então, tenta algo assim :
CREATE OR REPLACE FUNCTION checkpktest() RETURNS "trigger" AS $$
DECLARE
exist BOOL;
BEGIN
SELECT 't'::bool INTO exist FROM teste WHERE test = NEW.test;
RAISE NOTICE 'INSERINDO %',NEW.test;
IF exist THEN
RAISE EXCEPTION 'JA CADASTRADO';
END IF;
RETURN NEW;
END
$$
LANGUAGE 'plpgsql' VOLATILE;
É custoso, mas funciona.
--
Att:
Thiago Risso
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral