Em 24 de novembro de 2015 11:50, Flavio Henrique Araque Gurgel < fha...@gmail.com> escreveu:
> Pessoal, >> >> Dentro de uma função que retorna uma trigger, é possível efetuar um >> insert antes de um raise exception? >> >> Por exemplo >> >> IF condicao THEN >> INSERT tabela_log... >> RAISE EXCEPTION ''; >> RETURN NULL; >> END IF; >> RETURN NEW; >> >> A intenção é gravar em uma tabela de log a tentativa de insert. >> > > Quando você faz o RAISE EXCEPTION o que você faz é justamente... uma > exceção. Logo, um rollback é feito obrigatoriamente. > > Para fazer o que você quer, tem que tratar a exceção, um bloco assim no > fim da função pode te ajudar: > EXCEPTION > WHEN unique_violation THEN > INSERT INTO tabela_log... ; > RETURN outro_valor; > END; > > Lembre-se de tratar seu RETURN na chamada da função, porque você *não* > terá tratamento do rollback de outros comandos numa mesma transação, neste > caso. > > Legal Flavio, vou testar, obrigado. []s Danilo
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral