Puxa Osvaldo, mais uma vez obrigado, funcionou... Estou tentando entender o Postgres ainda :) Vim do mysql e algumas coisa são bem diferentes
Valeu.... -----Mensagem Original----- From: Osvaldo Kussama Sent: Wednesday, January 18, 2012 1:43 PM To: Comunidade PostgreSQL Brasileira Subject: Re: [pgbr-geral]Por que este UPDATE está loopando? 2012/1/18, Marcelo Silva (IG) <marc...@ig.com.br>: > Pessoal esse UPDATE esta sem fim... mas não entendi porque o mesmo SQL > funciona normalmente > > Olha o UPDATE > > update mv_vendas_itens set cod_key_pre = coalesce(b.cod_key, 0) > from mv_vendas_itens as a > inner join mv_vendas_pre_itens b on(b.cod_id = a.cod_id) > and(b.pedido = a.pedido) > and(b.codigo = a.codigo) > and(b.valor_ven = a.valor_ven) > and(b.obs not in('C')) > where (a.obs not in('C')) > > Aqui o SELECT > > select b.cod_key, b.pedido, b.codigo, b.valor_ven, a.* from > mv_vendas_itens > a > inner join mv_vendas_pre_itens b on(b.cod_id = a.cod_id) > and(b.pedido = a.pedido) > and(b.codigo = a.codigo) > and(b.valor_ven = a.valor_ven) > and(b.obs not in('C')) > where (a.obs not in('C')) > > O Select vem rapidinho, mas o Update fica em loop > Veja a definição do comando update: http://www.postgresql.org/docs/current/interactive/sql-update.html Creio que deva ser: UPDATE mv_vendas_itens a SET cod_key_pre = coalesce(b.cod_key, 0) FROM mv_vendas_pre_itens b WHERE (b.cod_id = a.cod_id) AND (b.pedido = a.pedido) AND (b.codigo = a.codigo) AND (b.valor_ven = a.valor_ven) AND (b.obs not in('C')) AND (a.obs not in('C')); Osvaldo _______________________________________________ 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