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
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> 

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

Responder a