[firebase-br] Exclusão de mestre/detalhe

Daniel Sonda daniel em mhnet.com.br
Seg Nov 17 15:34:05 -03 2008


Pesquisando sobre o assunto, encontrei isso no Firebird Tracker
tracker.firebirdsql.org/browse/CORE-1541

Pelo que entendi, não é bug. É assim mesmo que funciona.

Portanto, acho q terei que fazer a exclusão dos itens numa trigger 
before delete do mestre e abandonar o cascade delete.

Vou testar e posto o resultado.

Att.
Daniel Sonda
www.h2jsolucoes.com.br



Daniel Sonda escreveu:
> Olá pessoal!
>
> Identifiquei um comportamento do Firebird que achei anormal.
>
> Cenário:
>  - Duas tabelas num relacionamento mestre detalhe, com cascade update 
> e delete na FK do detalhe com o mestre.
>  - Trigger BeforeDelete no detalhe com acesso a dados do registro 
> mestre, usada para log de exclusão.
>
> Problema:
>  - Ao excluir o registro mestre, a trigger BeforeDelete dos registros 
> detalhes é disparada.
>  - Esta trigger acessa dois campos do registro mestre para gerar um 
> log de exclusão: select A, B from mestre where pk_mestre = 
> old.pk_mestre into :var_A, :var_B.
>  - Aqui está o problema: var_A e var_B sempre retornam NULL, como se o 
> registro mestre já tivesse sido excluído quando os registros detalhes 
> estão sendo excluídos. Ou seja, o mestre não é localizado.
>
> É assim mesmo que funciona? Ao exclui o mestre, na trigger before 
> delete dos detalhes eu não consigo mais consultar os dados do mestre?
>




Mais detalhes sobre a lista de discussão lista