[firebase-br] comportamento estranho do FB após um update
Rodrigo A. de Freitas
rodrigo em solucoeseinformatica.com.br
Qui Out 4 11:22:50 -03 2007
Olá pessoal!
Eu fiz uma alteração na minha base de dados, e o FB apresentou um
comportamento estranho. Gostaria da opinião do pessoal da lista sobre o
ocorrido:
Eu tenho uma tabela chamada REC_RECEB_PEDIDO, onde eu armazeno os
recebimentos de pedidos de compras (minhas notas fiscais de entrada) e outra
tabela chamada CTA_PAGAR_NOTA, onde são gravadas as duplicatas do contas à
pagar após a confirmação do processo de entrada.
A tabela REC_RECEB_PEDIDO possui um campo chamado COD_DOCUMENTO onde eu
gravo o ID da tabela CTA_PAGAR_NOTA, entretanto, esse campo não possuía uma
foreign key associada. Essa tabela recebeu dados durante dois anos e agora
eu preciso criar a foreign key; para isso, fiz o seguinte update para setar
os IDs que já estavam gravados mas não foram encontrados na tabela de origem
como NULL:
UPDATE REC_RECEB_PEDIDO R
SET R.COD_DOCUMENTO = NULL
WHERE (R.COD_DOCUMENTO IS NOT NULL)
AND (NOT EXISTS (SELECT P.CODIGO FROM CTA_PAGAR_NOTA P WHERE P.CODIGO =
R.COD_DOCUMENTO));
Rodei, commitei e até aí tudo perfeito, só que ao criar a foreign key, o
sistema acusava que existiam valores dentro da coluna COD_DOCUMENTO que
violavam a foreign key; Verifiquei duas, três vezes pela existência desses
valores mas estava tudo perfeito.
Aí eu resolvi apelar: fiz um backup e um restore da base, mandei criar a
foreign key e... FUNCIONOU! Aí está a minha pergunta: Porque a foreign key
recém criada não reconheceu os UPDATES executados (mesmo depois de fechar e
abrir o banco várias vezes, ou mesmo fazer o shutdown) até que eu tenha
feito backup e restore da base ?
Estou utilizando a versão 2.0.1 final do FB, instalado no modo classic.
Atenciosamente,
Rodrigo A. de Freitas
Soluções & Informática
Mais detalhes sobre a lista de discussão lista