A trigger esta deifinida para 3 tabelas que tenho que possuem o campo 
idrep_eventon1...
 
postei aqui apenas o inicio da function, pois é onde estou vendo o problema... 
mas se preferir posso enviar completa..


Att,
Tulio




>________________________________
> De: Osvaldo Kussama <osvaldo.kuss...@gmail.com>
>Para: Tulio Santos <tuliogust...@yahoo.com.br>; Comunidade PostgreSQL 
>Brasileira <pgbr-geral@listas.postgresql.org.br> 
>Enviadas: Quarta-feira, 8 de Fevereiro de 2012 13:20
>Assunto: Re: [pgbr-geral] Trigger/Function: Delete não esta guardando variavel
> 
>Em 08/02/12, Tulio Santos<tuliogust...@yahoo.com.br> escreveu:
>> Boa tarde,
>> Criei uma trigger AFTER que é ativada em caso de UPDATE, INSERT ou DELETE.
>> Ao identificar a operação da Trigger como Delete, estou com problemas para
>> guardar os resultados nas variaveis.
>> Não entendo o motivo, pois nos casos como UPDATE ou INSERT é utilizado a
>> mesma consulta, porem com NEW ao inves de OLD.
>> Coloquei RAISE EXCEPTION para encontrar quais variaveis nao estavam sendo
>> registradas, conforme abaixo.
>>
>>
>>     IF (TG_OP = 'DELETE') THEN
>>       select distinct mte.idrepesportesmt, mte.estado from rep_eventon1 n1
>>       inner join repesportesmt mte on mte.idrepesportesmt =
>> n1.idrepesportesmt
>>       where n1.idrep_eventon1 = OLD.idrep_eventon1 INTO rec;
>>
>>       select n1.idrepesportesmt, n1.idprog,
>>           case when (pm.codapresentacao in (2,3,4)) then true else false end
>> as reprise from rep_eventon1 n1
>>       inner join cli_progsmidia pm ON pm.idprog = n1.idprog
>>       where n1.idrep_eventon1 = OLD.idrep_eventon1 INTO rec_reprise;
>>
>>
>>       // a variavel OLD é exibida normalmente, mas as outras retornam NULL
>>
>>
>>       RAISE EXCEPTION 'teste variaveis (%),(%),(%)',
>> OLD.idrep_eventon1,rec.idrepesportesmt, rec_reprise.reprise;
>>
>>     ELSE
>>       select distinct mte.idrepesportesmt, mte.estado from rep_eventon1 n1
>>       inner join repesportesmt mte on mte.idrepesportesmt =
>> n1.idrepesportesmt
>>       where n1.idrep_eventon1 = NEW.idrep_eventon1 INTO rec;
>>
>>       select n1.idrepesportesmt, n1.idprog,
>>           case when (pm.codapresentacao in (2,3,4)) then true else false end
>> as reprise from rep_eventon1 n1
>>       inner join cli_progsmidia pm ON pm.idprog = n1.idprog
>>       where n1.idrep_eventon1 = new.idrep_eventon1 INTO rec_reprise;
>>
>>
>>       // todas as variaves exibem seus resultados normalmente
>>
>>       RAISE EXCEPTION 'teste variaveis (%),(%),(%)', NEW.idrep_eventon1,
>> rec.idrepesportesmt, rec_reprise.reprise;
>>
>>     END IF;
>>
>>
>
>
>
>E este gatilho está definido em qual tabela?
>
>Osvaldo
>
>
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a