[firebase-br] RES: Trigger After Delete

Matheus Georg Mathias desenvolvedor5 em priorize.com.br
Sex Set 4 16:49:36 -03 2015


Cara, não sei se é a véspera de feriado mas eu acredito que a validação que
você deveria estar fazendo seria 
*  if (:i = 0) then*

Pois você fez o delete dessa tabela então se ele tivesse 1 ele não deveria
ter mais nenhum registro.

E outra coisa, verifica para inicializar esse campo de acordo com o padrão.


Atenciosamente,



-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Renan Rogowski
Pozzo
Enviada em: sexta-feira, 4 de setembro de 2015 16:11
Para: FireBase <lista em firebase.com.br>
Assunto: [firebase-br] Trigger After Delete

Boa tarde.
Estou com uma dúvida/dificuldade com uma trigger after delete.

Tenho duas tabelas:
TB_LOTE
TB_NFC_ITEM_LOTE

A TB_NFC_ITEM_LOTE tem uma FK da TB_LOTE.

Quando apago o registro da TB_NFC_ITEM_LOTE confiro se existia apenas um
registro para esse ID_LOTE e se não existir tento apagar o ID_LOTE da
TB_LOTE, conforme trigger after delete abaixo:

*CREATE OR ALTER trigger tb_lote_ad0 for tb_lote* *active after delete
position 0*
*AS*
*declare variable i integer;*
*begin*
*  select count(*) from tb_nfc_item_lote where id_lote = old.id_lote into
i;*

*  if (:i = 1) then*
*  begin*
*    delete from tb_lote where id_lote = old.id_lote;*
*  end*

*end*

Porém apresenta o erro: *violation of FOREIGN KEY constraint "".* *violation
of FOREIGN KEY constraint "FK_TB_NFC_ITEM_LOTE_ID_LOTE" on table
"TB_NFC_ITEM_LOTE".*
*Foreign key references are present for the record.*

Mesmo colocando a trigger como after delete, não deveria excluir da TB_LOTE
?

Abraço,
Renan Rogowski Pozzo

*"E a paz de Deus, que excede todo o entendimento, guardará os vossos
corações e os vossos pensamentos em Cristo Jesus." Filipenses 4.7*
______________________________________________
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