[firebase-br] Desativar Foreign Key de todo o Banco

Joelson - Souzamark joelsonss em yahoo.com.br
Seg Jun 6 22:03:12 -03 2005


A quem interessar possa:

Foreign Key sempre me deu uma dor de cabeça danada na hora q o usuário
ia excluir um registro q tinha um relacionamento, dava aquele erro :-( então
teria uma saída usando o try except no delphi  mas eu pensava em uma maneira
um pouco mais elegante de sair dessa situação e um belo dia resolvi dar uma
olhada nas tabelas de sistema e cheguei nesse código, inclusive mudei ele hj 
depois
do post do Eduardo Jed trocando o IN pelo EXISTS... thanxs ;-)...
este select verifica se a tabela a ser excluída tem algum dependente... 
então eu acho
q com alguma adaptação vai dar pra fazer o q o companheiro precisa....

SELECT A.RDB$RELATION_NAME, B.RDB$FIELD_NAME FROM
RDB$INDICES A INNER JOIN RDB$INDEX_SEGMENTS B ON (A.RDB$INDEX_NAME =
B.RDB$INDEX_NAME) WHERE EXISTS (SELECT 1 FROM RDB$RELATION_CONSTRAINTS
WHERE (RDB$CONSTRAINT_TYPE = 'PRIMARY KEY') AND (RDB$RELATION_NAME =
'CLIENTES') AND (RDB$CONSTRAINT_NAME = A.RDB$FOREIGN_KEY))

sem mais
Joelson


----- Original Message ----- 
From: "Exclaim Tecnologia" <exclaimtecnologia em yahoo.com.br>
To: "Lista Firebase" <lista em firebase.com.br>
Sent: Monday, June 06, 2005 7:08 PM
Subject: [firebase-br] Desativar Foreign Key de todo o Banco


> Estou desenvolvento um aplicativo de copia de bancos, porem como a grande
> maioria dos bancos possui foreign keys só é possível copiar a tabela pai
> antes da filha e nunca o inverso devido a integridade relacional. Ja 
> tentei
> de varias formas, ja postei aqui a ideia de gerar a ordem das tabelas, mas
> nao consegui solução, vejo que uma solução seria desativar  as foreign 
> keys
> de todas as tabelas e depois reativa-los, alguem sabe como eu poderia 
> fazer
> isso??
>
> Obrigado!!
>
>
>
>
>
>
> ____________________________________________________
> Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! 
> http://mail.yahoo.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.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
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.323 / Virus Database: 267.6.4 - Release Date: 06/06/2005
>
> 





Mais detalhes sobre a lista de discussão lista