Em 8 de julho de 2015 17:56, PAULO escreveu:
> É possível chamar uma função dentro de uma Trigger ?
Dentro do trigger somente uma função pode e deve ser chamada [1]. Esta
função precisa retornar um tipo determinado [2] chamado "trigger".
Os gatilhos no PostgreSQL não incluem código procedural à exemplo de
outros bancos de dados, elas contém o apenas o "cabeçalho" que faz
referência ao evento em que ocorre e qual a função deve ser chamada.
Nesta função que retorna um tipo "trigger" você pode fazer chamadas a
outras funções, é nela que fica o código procedural.
Veja o código de exemplo:
-- Cria a função que será usada no gatilho.
-- É nesta função que você faz as chamadas às outras funções
CREATE FUNCTION tf_trigger_function()
RETURNS trigger AS
$body$
BEGIN
-- Aqui fica o código procedural com a chamada a outras funções
RETURN NEW;
END;
$body$
LANGUAGE plpgsql;
-- Aqui o trigger apenas faz a chamada à função
-- criada acima.
CREATE TRIGGER tr_bu_trigger
BEFORE UPDATE ON tabela
FOR EACH ROW
EXECUTE PROCEDURE tf_trigger_function();
[1] http://www.postgresql.org/docs/9.1/static/sql-createtrigger.html
[2] http://www.postgresql.org/docs/9.1/static/plpgsql-trigger.html
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral