Simples meu caro...
Vamos lá..
TG_OP - traz a definição de que ação disparou aquela trigger exemplo
AFTER INSERT OR UPDATE OR DELETE ON emp
FOR EACH ROW EXECUTE PROCEDURE tg_fn_xpto();
A trigger acima invoca a função tg_fn_xpto() após um insert, update ou
delete então se dentre da função de trigger tivermos um controle especifico
para quando for insert, update ou delete por exemplo teríamos uma função de
nome tb_fn_xpto() que faz auditoria, lembrando que quando os dados são
removidos precisamos guardar como eles existiam, então segue exemplo:
CREATE OR REPLACE FUNCTION tg_fn_xpto() RETURNS TRIGGER AS $fn_xpto$
BEGIN
IF (TG_OP = 'DELETE') THEN
INSERT INTO tabela_xpto_auditada SELECT 'D', now(), user, OLD.*;
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO tabela_xpto_auditada SELECT 'U', now(), user, NEW.*;
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO tabela_xpto_auditada SELECT 'I', now(), user, NEW.*;
RETURN NEW;
END IF;
RETURN NULL;
END;
$fn_xpto$ LANGUAGE plpgsql;
IF (TG_OP = 'DELETE') THEN
INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO emp_audit SELECT 'U', now(), user, NEW.*;
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
--
T.'.A.'.F.'.,
Gerdan Rezende dos Santos
2015-06-16 10:26 GMT-03:00 Matheus de Oliveira <[email protected]>:
>
> On Tue, Jun 16, 2015 at 9:35 AM, Matheus Ferreira <
> [email protected]> wrote:
>
>> Isso mesmo Matheus a variável do pl/pgSQL
>
>
> OK. E qual sua dúvida? A pergunta original não faz o menor sentido pra mim.
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral