[firebase-br] FKs
Marcos Weimer
marcosweimer em gmail.com
Qui Dez 29 16:34:12 -03 2011
Ola!
Existe uma maneira de desativar todas as FKs do banco (ou tabela) no
firebird ??
Estou fazendo a replicação de dados de um banco para outro e existe uma
ref. ciclica entre 2 tabelas,
ex:
TABELA_A
- CAMPO_AA - pk
- CAMPO_AB - pk
- CAMPO_AC - FK -> TABELA_B.CAMPO_BA
TABELA_B
- CAMPO_BA - pk
- CAMPO_BC
- CAMPO_BD
- CAMPO_BE - FK -> TABELA_A.CAMPO_AC
estou fazendo um while nas tabelas do banco, passando os registros
novos/alterados.
A situação é a seguinte....
- Insere um registro na TABELA_B informando o valor na fk (CAMPO_BE)
- insere um registro na TABELA_A informando o valor na fk (CAMPO_AC)
quando vou transferir os dados pego todos da tabela A e executo a
transferencia, depois todos da tabela B e assim sucessivamente.
Oque resolveria seria efetuar um DROP nas FKs do banco de destino, ja que
na teoria, vai ser usado apenas para consultas em caso de pane e afins, no
banco principal.
- No banco de destino, nenhuma informação sera apagada, apenas
inserida/alterada.
Não vejo uma maneira de desativar as FKs e depois de realizar o processo
reativar.
Teria de droppar e recriar depois, se esta for a solução estou literalmente
ferrado, são 1230 FKs (não foi um numero chutado, são 1230 mesmo)
As triggers desativo/ativo de forma dinamica com select nos system tables.
Alguem sabe como proceder?
-=Ma®©oS=-
Marcos R. Weimer
Puma GTE 1974 Tubarão
Mais detalhes sobre a lista de discussão lista