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

Responder a