Senhores;
Como faço para sair do grupo ?
Grato.
Date: Tue, 23 Jun 2009 21:17:33 -0300
From: [email protected]
To: [email protected];
[email protected]
Subject: Re: [pgbr-geral] RES: Uso de aliases em comandos update.
Olá Rubens,
A sua pergunta já foi respondida, mas eu vou deixar um outro jeito de fazer um
update numa tabela que eu uso direto, justamente por sua versatilidade e
facilidade. Inclusive, havia um processo aonde eu trabalho ue fazia um update
meio locão que demora em torno de 10 minutos, era rodado à noite, foi
modificado o update e hoje roda em menos de 10 segundos, isso ocorre porque o
postgres consegue traçar um plano melhor para o update:
update foo a -- Note o use de alias na tabela
set coluna = b.coluna -- no set não passa a alias, não precisa
from bar b -- o from aqui é melhor do que fazer um subselect
where -- defino o filtro
a.codfoo = b.codbar
Espero ter ajudado ai!
Atenciosamente,
Rafael Domiciano
2009/6/23 Rubens José Rodrigues <[email protected]>
Muito obrigado pela ajuda
" Falta de
tempo é desculpa daqueles que perdem tempo por falta de métodos"
Att.
----------------------------------------------------------------------------
Rubens José Rodrigues
T.I, Analista de Suporte
Tel: (27)3399-6419 / (27)9969-8081
[email protected]
----------------------------------------------------------------------------
Broker Nestle do Brasil S/A
Rua José Ramos de Oliveira, 91, 29111-280
Nossa Senhora da Penha, Vila Velha, ES
(27)3399-6400 / (27)9975-0140
De:
[email protected]
[mailto:[email protected]]
Em nome de Fabrízio de Royes Mello
Enviada em: terça-feira, 23 de junho de 2009 14:11
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] Uso de aliases em comandos update.
2009/6/23 Rubens José Rodrigues <[email protected]>
<corte>
Tentativa:
Update foo a set a.coluna = (select count(1) from
outratabela where codfoo=a.codfoo);
Erro:
Error: "ERROR: column "a" of relation
"foo" does not exist
LINE 1: update foo a set a.coluna=(select count(1) from...
Caro Rubes,
Como você bem citou a documentação oficial [1] no SET do UPDATE você deve
referenciar diretamente a coluna da tabela (ou alias) que é alvo do comando. No
valor setado você pode colocar uma "Tabela.Coluna", dependendo da
forma como você está escrevendo o SQL.
Tente:
Update foo a set coluna = (select count(1) from outratabela
where codfoo=a.codfoo);
[1] http://www.postgresql.org/docs/8.3/interactive/sql-update.html
--
Fabrízio de Royes Mello
>> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, clique
aqui.
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.
Esta
mensagem foi verificada pelo E-mail Protegido.
Atualizado em 23/06/2009
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_________________________________________________________________
Conheça os novos produtos Windows Live! Clique aqui.
http://www.windowslive.com.br
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral