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