[firebase-br] Uma trigger pode disparar outra ? Vou explicar melhor...

Rodrigo A. de Freitas rodrigo em solucoeseinformatica.com.br
Ter Nov 28 16:47:39 -03 2006


Curto e grosso, sim vai.

A trigger é um procedimento vinculado à uma determinada operação em uma
tabela. Se você tem uma tabela pai e uma tabela filho com mais n tabelas
filho, ao disparar a trigger da primeira tabela pelo DELETE FROM, as
operações com delete executadas por dentro da trigger também irão disparar
quaisquer triggers que estiverem associadas.

Outra maneira de implementar isso que você quer é colocando a foreign key
das suas tabelas com a opção de deletar em cascata, aí nem das triggers
você precisaria.

[]'s

Rodrigo A. de Freitas

Análise & Desenvolvimento
Soluções & Informática

> Pessoal, eu tenho 2 Triggers:
>
> Uma chama T_APAGAFUNCIONARIO que funciona quando for deletado um registro
> da tabela FUNCIONARIO em BEFORE DELETE. Ela apaga registros da tabela
> ATESTADO como está abaixo:
> AS
> begin
> Delete from ATESTADO
>  Where CODIGOEMPRESA = FUNCIONARIO.CODIGOEMPRESA and
>        CODIGOFUNCIONARIO = FUNCIONARIO.CODIGOFUNCIONARIO;
> end
>
> E tenho também a outra trigger que chama T_APAGAATESTADOS que funciona
> quando for deletado um registro da tabela ATESTADO em BEFORE DELETE. Ela
> apaga os registros das tabelas ATESTADOPPP, ATESTADOMUDANCAFUNCAO,
> ATESTADORETORNOAFASTAMENTO E ATESTADO PERIODICO como está abaixo:
> AS
> begin
> Delete from ATESTADOPPP
>  Where CODIGOEMPRESA = ATESTADO.CODIGOEMPRESA and
>        CODIGOFUNCIONARIO = ATESTADO.CODIGOFUNCIONARIO;
>
> Delete from ATESTADOMUDANCAFUNCAO
>  Where CODIGOEMPRESA = ATESTADO.CODIGOEMPRESA and
>        CODIGOFUNCIONARIO = ATESTADO.CODIGOFUNCIONARIO;
>
> Delete from ATESTADORETORNOAFASTAMENTO
>  Where CODIGOEMPRESA = ATESTADO.CODIGOEMPRESA and
>        CODIGOFUNCIONARIO = ATESTADO.CODIGOFUNCIONARIO;
>
> Delete from ATESTADOPERIODICO
>  Where CODIGOEMPRESA = ATESTADO.CODIGOEMPRESA and
>        CODIGOFUNCIONARIO = ATESTADO.CODIGOFUNCIONARIO;
> end
>
> Eu quero que: Quando eu apagar um registro da tabela FUNCIONARIO, que seje
> disparado a Trigger T_APAGAFUNCIONARIO, e que está por sua vez dispare a
> Trigger T_APAGAATESTADOS. Do jeito que eu fiz, vai acontecer desta forma ?
>
> Abraços
> Chico
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>






Mais detalhes sobre a lista de discussão lista