[firebase-br] RES: RES: Delete com subselect não usa índice

Ivan Guimarães Meirelles igmeirelles em gmail.com
Sex Set 11 11:56:03 -03 2009


Certo Daniel...

Então como é disparada em uma transação de update, 
só deve tomar cuidado para que o campo vda_id não seja alterado, pois isso
irá disparar a trigger e afetará parcelas erradas.
Por isso, mesmo sendo UPDATE eu prefiro usar OLD... ou impedir que se altere
o valor deste campo.

É só um toque...

Espero ter ajudado.
Um forte abraço.

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Daniel Sonda
Enviada em: sexta-feira, 11 de setembro de 2009 10:09
Para: FireBase
Assunto: Re: [firebase-br] RES: Delete com subselect não usa índice

Olá Ivan!

Talvez não ficou claro... mas a trigger é after update. Ao cancelar uma 
venda, muda-se o valor do campo (flag).

Flw

Daniel

Em 11/09/2009 10:57, Ivan Guimarães Meirelles escreveu:
> Olá Daniel...
>
> Mais um detalhe...
> como vc está disparando a trigger em uma transação de DELETE então use:
>
> OLD.vda_id e não NEW.vda_id
>
> Um forte abraço.
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
Em
> nome de Douglas Tosi
> Enviada em: sexta-feira, 11 de setembro de 2009 09:36
> Para: FireBase
> Assunto: Re: [firebase-br] Delete com subselect não usa índice
>
> 2009/9/11 Daniel Sonda<daniel em mhnet.com.br>:
>    
>> delete from conta_receber
>> where (conta_receber.par_id in (
>>   select parcela.par_id
>>   from parcela
>>   where (parcela.vda_id = new.vda_id)))
>> Posso estruturar a instrução de maneira diferente a fim de otimizar?
>>      
> Acho que não tem como indexar as duas tabelas neste caso. Mas você
> pode tentar o seguinte comando e ver se melhora um pouco.
>
> delete from conta_receber
> where exists
> (
> select 1
> from parcela
> where parcela.vda_id = new.vda_id and parcela.par_id =
conta_receber.par_id
> )
>
> hth,
>    

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista