Em 8 de julho de 2015 17:56, PAULO <[email protected]> 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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a