[pgbr-geral] REF: Chamar Função dentro da Trigger.

2015-07-08 Thread PAULO
Olá Pessoal,

 

É possível chamar uma função dentro de uma Trigger ?

 

Obrigado.

 

 

Paulo.

PostgreSQL 9.1

(pl/pgsql)  

 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] REF: Chamar Função dentro da Trigger.

2015-07-08 Thread Tiago José Adami
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


[pgbr-geral] RES: REF: Chamar Função dentro da Trigger.

2015-07-08 Thread PAULO
>>
>>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;
>>

Valeu Thiago, obrigado pela dica.

Abraços.

Paulo.


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral