[firebase-br] Delete em cascata usando SQL

Francisco Thiago Almeida jeandeadlucky em yahoo.com.br
Sex Out 8 13:17:41 -03 2004


Você está certo! é que na pressa eu esqueci de escrever a coluna.. (reaproveitei o exists :D)

Danilo Rogério <danilorsa_betta em yahoo.com.br> wrote:Thiagão e Luiz... não sei, mas vc não deveria tentar no início do seu delete colocar o código da transferência???
Por Ex:

DELETE FROM TRANSFERIDO TRS
WHERE TRS.CODIGO_TRANSFERENCIA IN (
SELECT T.CODIGO
FROM TRANFERENCIA T
WHERE T.CODIGO_VENDA_LOTE IN (
SELECT VL.CODIGO
FROM VENDALOTE L
WHERE VL.CODIGO_LOTE IN (
SELECT L.CODIGO
FROM LOTE L
WHERE LOTEAMENTO = 16
)
)
)


Posso estar falando besteira mas o vc deve usar um parâmetro(coluna) antes do IN...

Até mais,
Danilo

Francisco Thiago Almeida wrote:

Caros amigos, 

O meu colega de servico tem de fazer um delete em cascata com a seguinte estrutura (pais acima, filhos abaixo. Todas as relacoes sao NxN)

Loteamento (este será o excluido)
Lote
VendaLote
Parcela | Comprador | Transferencia
Transferido

Como a cascata até transferido é a maior, nós comecamos o teste com ela e usamos o SQL:

DELETE FROM TRANSFERIDO TRS
WHERE IN (
SELECT T.CODIGO
FROM TRANFERENCIA T
WHERE IN (
SELECT VL.CODIGO
FROM VENDALOTE L
WHERE IN (
SELECT L.CODIGO
FROM LOTE L
WHERE LOTEAMENTO = 16
)
)
)
E demorou muito pra executar!!! (E não existem registros na tabela de Transferido. Para tentar solucionar tentamos outro SQL:

DELETE FROM TRANSFERIDO TRS
WHERE EXISTS (
SELECT T.CODIGO
FROM TRANFERENCIA T
WHERE EXISTS (
SELECT VL.CODIGO
FROM VENDALOTE L
WHERE EXISTS (
SELECT L.CODIGO
FROM LOTE L
WHERE LOTEAMENTO = 16
AND VL.LOTE = L.CODIGO
)
)
)
Este sequer chegou ao fim de sua execução.

Neste caso, o que acontece no BDE? (isso mesmo, BDExPiradox) A consulta com o Exists nao deveria ser mais veloz? Vocês acham que rolar tabela seria mais rápido? Existe uma forma de otimizar este consulta?



Obrigado





-----------------------------------------------
Francisco Thiago de Almeida 
MRL Consultoria em Informática 
Divisão Desenvolvimento e Banco de Dados
Franca/SP

---------------------------------
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br


---------------------------------
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
______________________________________________
FireBase-BR (www.firebase.com.br)
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br



-----------------------------------------------
Francisco Thiago de Almeida         
MRL Consultoria em Informática    
Divisão Desenvolvimento e Banco de Dados
Franca/SP
		
---------------------------------
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!


Mais detalhes sobre a lista de discussão lista