[firebase-br] Integridade referencial

Éder Monteiro do Nascimento fator em aliancati.com
Quarta Julho 29 10:38:15 -03 2020


Pelo que ele colocou, tem uma diferença;
Se ele for excluir uma empresa, ela tem que excluir empregados, mas se o
empregado tiver histórico, não é para excluir.
Se ele for excluir um funcionário, é para excluir o histórico.
Se de fato for isso, vc não tem como fazer (pelo menos não vejo como) de
forma direta. São dois comportamentos muito divergentes.
Uma forma de fazer é travar por exemplo via trigguer, usando uma variável
de transação, e deixando a fk como cascate.

Mas por que desse comportamento?





*Éder Monteiro do Nascimento*

Programador

Fator Sistemas & Consultoria

e-mail: *eder.nascimento_fator em hotmail.com <eder.nascimento em hotmail.com>*

http://fatorsistemas.com.br


Em qua., 29 de jul. de 2020 às 09:56, Carlos H. Cantu <
listas em warmboot.com.br> escreveu:

> Não precisa de trigger. Nas FKs onde vc deseja impedir a remoção do
> pai se existir filhos, vc omite a clausula ON DELETE CASCADE, e aí o
> próprio Firebird vai impedir que o "pai" seja excluído caso ele tenha
> filhos.
>
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>
> GN> Bom dia,
> GN> Li um artigo no site firebase com considerações sobre a integridade
> GN> referencial declarativa x triggers.
> GN> Tenho registros PAI que não podem ser excluídos caso tenha registros
> filhos
> GN> e alguns casos de exclusão em cascata.
> GN> Exemplo: Empresa, filial, empregado, "informações sobre o empregado".
> GN> Posso excluir do banco empresas e filiais que não tenham nenhum
> empregado
> GN> relacionado.
> GN> Se excluir um empregado, devo excluir seu histórico.
> GN> Fazia esse controle via código no DELPHI com o paradox.
> GN> Na migração , gerei o script sem os FK (não existiam no paradox).
> GN> Agora seria o momento de decidir manter como era ou:
> GN> - criar FK com exclusão em cascata
> GN> - criar triggers que verificam e impedem excluir um empregado que tenha
> GN> históricos (históricos considere mais de uma tabela com propósitos
> GN> diferentes).
>
>
>
> GN> *Gustavo Novaes *
> GN> ______________________________________________
> GN> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> GN> Para saber como gerenciar/excluir seu cadastro na lista, use:
> GN> http://www.firebase.com.br/fb/artigo.php?id=1107
> GN> Para consultar mensagens antigas:
> GN> http://www.firebase.com.br/pesquisa_lista.html
>
>
> ______________________________________________
> 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
>


Mais detalhes sobre a lista de discussão lista