Foi isso mesmo Matheus.
Quando for disparada em 1 tabela em especial não terei o resultado esperado por
conta do DELETE..
Grande distração a minha.. rs
Vou alterar ela pra que considere a tabela que disparou a TRIGGER com
TG_RELNAME..
Assim já anulo essa possibilidade..
Obrigado
Att,
Tulio
>________________________________
> De: Matheus de Oliveira <[email protected]>
>Para: Tulio Santos <[email protected]>; Comunidade PostgreSQL
>Brasileira <[email protected]>
>Cc: Osvaldo Kussama <[email protected]>
>Enviadas: Quarta-feira, 8 de Fevereiro de 2012 14:18
>Assunto: Re: [pgbr-geral] Trigger/Function: Delete não esta guardando variavel
>
>
>Pelo que entendi você está dando um SELECT na mesma tabela que disparou a
>trigger.
>Mas, como está usando AFTER, o registro já foi excluído, logo o SELECT não vai
>achá-lo.
>A solução no seu caso seria usar BEFORE ao invés do AFTER, mas veja se isso
>não implica em algum outro problema no restante da função.
>
>Att.
>--
>Matheus de Oliveira
>
>Bacharelado em Ciências de Computação
>Laboratório de Computação de Alto Desempenho - LCAD
>Instituto de Ciências Matemáticas e de Computação - ICMC
>Universidade de São Paulo - USP
>
>
>
>
>
>2012/2/8 Tulio Santos <[email protected]>
>
>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 <[email protected]>
>>>Para: Tulio Santos <[email protected]>; Comunidade PostgreSQL
>>>Brasileira <[email protected]>
>>>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<[email protected]> 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
>>[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