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
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to