[firebase-br] Problema Chave Estrangeira
Carlos H. Cantu
listas em warmboot.com.br
Seg Jan 11 17:43:39 -03 2016
Exato, nunca misture DDL e DML em uma mesma transação.
A correção dessa "limitação" exige uma mudança de arquitetura no
Firebird, e até o momento, nenhum core-developer propôs uma solução
efetiva.
O problema acontece se os objetos manipulados pela DDL são os mesmos
(ou possuem alguma dependência/relacionamento) com os objetos
manipulados pela DML.
[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br
J> Lembro-me de ter tido problema na versão 1.0 do FB, com mistura de DDL e
J> DML, agora nas versões superiores não sei se é possível, eu sempre
J> evito.
J> "I don't think, that mixing DDL and DML is a good idea..." [1]
J> [1]
J> http://comments.gmane.org/gmane.comp.db.firebird.dotnetprovider/7314
J> Em Seg, 2016-01-11 às 16:28 -0200, Luiz Filipe Meinecke escreveu:
>> Boa Tarde Pessoal,
>>
>> estou com a seguinte situação:
>>
>> Em uma *mesma *transação eu deleto várias chaves estrangeiras de algumas
>> tabelas, limpo várias tabelas (delete from) e adiciono vários registros
>> (insert).
>>
>> Faço desta maneira para caso ocorra algum erro, apenas realizo o Rollback
>> da transação sem afetar o banco para os usuários.
>>
>> Porém mesmo após remover as chaves estrangeiras das tabelas envolvidas,
>> este erro é gerado: *violation of FOREIGN KEY contraint '***unknown***' on
>> table... Foreign key references are present for the record*
>>
>> Se eu divido a exclusão das chaves estrangeiras e limpeza das tabelas em
>> duas transações, funciona. Mas não quero fazer isto, pois descaracteriza o
>> meu objetivo.
>>
>> Alguém já passou por esta situação e poderia me dizer o que ocorre?
>>
>> Muito obrigado pela atenção!
>>
>> Att,
>> Luiz
>> ______________________________________________
>> 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://www.firebase.com.br/pesquisa_lista.html
J> ______________________________________________
J> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
J> Para saber como gerenciar/excluir seu cadastro na lista, use:
J> http://www.firebase.com.br/fb/artigo.php?id=1107
J> Para consultar mensagens antigas:
J> http://www.firebase.com.br/pesquisa_lista.html
Mais detalhes sobre a lista de discussão lista