On 18-02-2015 11:44, Douglas Fabiano Specht wrote:
> Bom dia Pessoal
> 
> tenho uma trigger after insert or delete, postgres 9.4, que se for feito um
> delete eu preciso dar um insert em uma tabela com um join.
> até ai tudo certo, ocorre que não esta fazendo o insert, pois o select não
> deve estar retornado dados.
> 
>     if (TG_OP = 'DELETE') then
> insert into dah.wdados(codempresa, tipo, codigo, titular, nro, chave,
> celular, dataoperacao)
> select old.codempresa, 'CO', old.codigo, old.nome, old.acesso, old.chave,
> c.celular, CURRENT_TIMESTAMP
> from cadcliente c
> join movimento h on (c.codigo = h.codigo )
> where (h.chave = old.chave and h.codempresa=old.codempresa) ;
>         return old;
>       END IF;
> 
> alguma dica ou segredo pra poder fazer esse join com where utilizando as
> colunas OLD?
> ou como eu poderia salvar o comando com seus valores? estou usando o
> debbuger do pgadmin, mas os valores dos campos não mostram.
> 

Douglas,

Em qual tabela está essa trigger?? Lembre-se que o AFTER já considera a
operação efetivada, ou seja, se a sua query com JOIN precisa das tuplas
excluidas não serão retornadas. Me parece que vc precisa colocar esse
seu INSERT no BEFORE DELETE.

Att,

-- 
   Fabrízio de Royes Mello         Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a