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; Obrigado Att, Tulio
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral