Tem sim,
Basta verificar a variável TG_OP, ela pode ter 3 valores: DELETE, UPDATE,
INSERT.

Veja no manual do postgresql, há inclusive exemplos usando essa variável.

http://www.postgresql.org/docs/8.4/interactive/plpgsql-trigger.html

Abraços,

2009/9/25 Thiago <[email protected]>

> Galera ...
>
> Pelo que vi esse passo "(old.nome <> new.nome)" só da problema quando a
> trigger é no insert mas a minha trigger serve para ambos, tem como saber
> se a trigger veio por insert ou update assim faço esse verificação
> apenas no update.
>
> Obrigado !!!
>
> Thiago escreveu:
>  > Galera é o seguinte ...
> >
> > Tenho uma tabela e uma trigger que dispara tanto no update quanto no
> > before e o for each está como row ...
> >
> > O que quero fazer é o seguinte ...
> >
> > Sempre que for incluir um novo registro quero saber se o valor que está
> > sendo colocado é diferente do antigo, ou seja, quero comparar o old com
> > o new ... por acaso isso funciona apenas para trigger que dispara em
> > update ???
> >
> > Essa é a trigger ...
> >
> >     ---verificando se trocou o nome da maquina
> >     vsig := '';
> >     if (old.nome <> new.nome) and (new.filial = 99) then
> >        if strpos('-',new.nome) > 0 then
> >           vsig := substring(new.nome,1,strpos('-',new.nome));
> >        end if;
> >     else
> >        return new;
> >        exit;
> >     end if;
> >
> > Ela compila normalmente mas quando executo um insert aparece o seguinte
> > erro:
> >
> > ERROR:  record "old" is not assigned yet
> > DETAIL:  The tuple structure of a not-yet-assigned record is
> indeterminate.
> > CONTEXT:  PL/pgSQL function "tg_inffiliais_depart" line 7 at if
> >
> > Alguém sabe o que estou fazendo de errado.
> >
> > Obrigado !!!
> >
> > _______________________________________________
> > 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
>



-- 
André de Camargo Fernandes
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a