[firebase-br] RES: Update nos 3500 primeiros registros

Fabio - Yahoo frl_br em yahoo.com.br
Seg Ago 20 17:16:26 -03 2007


Edson, não primeiro exemplo esta inner join que você faz i.codigo=v.codigo
me parece ser a fonte do problema, pois você faz com que todos os registros
em v esteja dentro do sub-select para cada passada do ponteiro da consulta.
O segundo me parece que deveria ter funcionado, embora acredito que a
condição v.coligada=13 do update seja desnecessária pois já consta no
sub-select.
Outra coisa e este ORDER BY v.codigo DESC dentro do sub-select, achei
estranho isto não me parece funcional, acho que deveria ser i.codigo.

Tenta assim:

Update veiculo v 
Set v.dtultalteracao=CURRENT_TIMESTAMP-1
WHERE v.codigo in (SELECT FIRST 3500 i.codigo
 			 FROM veiculo i
			 WHERE i.coligada=13
			 ORDER BY i.codigo DESC);

Abraço,

Fabio R. Limeira

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Edson de Paulo
Enviada em: segunda-feira, 20 de agosto de 2007 16:59
Para: lista em firebase.com.br
Assunto: [firebase-br] Update nos 3500 primeiros registros

Alguém sabe me explicar o motivo dos updates abaixo não terem funcionado?
Tenho 7500 registros de acordo com o meu Where

Quero fazer um update apenas nos 3500 primeiros registros que ele achar. 
E nas duas formas abaixo ele setou os 7500.


UPDATE veiculo v
SET v.dtultalteracao = CURRENT_TIMESTAMP - 1
WHERE v.coligada = 13
   AND EXISTS (SELECT FIRST 3500 i.codigo
               FROM veiculo i
               WHERE i.coligada = 13
                 AND i.codigo   = v.codigo
               ORDER BY v.codigo DESC);

ou

UPDATE veiculo v
SET v.dtultalteracao = CURRENT_TIMESTAMP - 1
WHERE v.coligada = 13
   AND v.codigo IN  (SELECT FIRST 3500 i.codigo
                     FROM veiculo i
                     WHERE i.coligada = 13
                    ORDER BY v.codigo DESC);


-- 
Edson de Paulo
Curitiba - PR


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista