[firebase-br] Trigger não recursiva

Gladiston Santana gladiston em vidy.com.br
Sex Abr 17 16:03:14 -03 2020


No MSSQL eu conheço 'nested triggers', mas você define isso a configuração
do banco e não por trigger, você define um número tipo "8" e a cada disparo
que conte com outras triggers aninhadas/recursivas ele vai contando até
chegar no número "8", daí não processa mais.
Mas é bem perigoso programar dessa forma, se estas triggers fazem
insert/update/delete ou chamam procedures elas podem quebrar lógicas se não
forem feitos direito, e quando acontecer será muito mais difícil o debug
por causa do efeito "macarrónico" de triggers aninhadas/recursivas. Sem
falar nos updates por fora do programa principal porque tem que lembrar de
desabilitá-las primeiro.

O efeito de semáforo que você criou usando variáveis de contexto falta
experimentação num ambiente multiusuário onde os locks pessimista/otimista
podem divergir em diferentes sistemas, telas ou cenários. Eu achei a idéia
um pouco insana, mas eu venho de uma escola antiga onde o pragmatismo com
dados era levado às alturas então posso estar errado também.

inte+

Em sex., 17 de abr. de 2020 às 11:53, Marcelo Geyer <estanisgeyer em gmail.com>
escreveu:

> Se não me engano, o SQL Server tem um recurso para impedir a
> recursividade de triggers. Porém, vi alguns exemplos com
> TRIGGER_NEXTLEVEL que retorna a quantidade disparada pela mesma
> instrução. No firebird, achei interessante a ideia proposta pelo
> Cantu, até acho que o projeto Firebird poderia incluir um recurso para
> impedir a recursividade para a mesma instrução.
>
> Em sex., 17 de abr. de 2020 às 11:30, Gladiston Santana
> <gladiston em vidy.com.br> escreveu:
> >
> > Depois dizem que eu cobro muito caro para dar manutenção em sistemas de
> > terceiros.
> > Menos POG pessoal, vamos fazer minha mão de obra ficar mais barata :)
> >



Mais detalhes sobre a lista de discussão lista