[firebase-br] RES: RES: Trigger After Delete

Matheus Georg Mathias desenvolvedor5 em priorize.com.br
Sex Set 4 17:03:53 -03 2015


Boa Tarde Renan,

Eu até fiz um teste aqui e funcionou corretamente. É a mesma forma que você
fez praticamente mas com o if = 0.


Exemplo que eu fiz:
CREATE OR ALTER TRIGGER BD_ANALISE_ITEM_AD0 FOR BD_ANALISE_ITEM
ACTIVE AFTER DELETE POSITION 0
AS
    declare variable QTD INTEGER;
begin
    SELECT COALESCE(COUNT(*), 0) FROM BD_ANALISE_ITEM WHERE
BD_ANALISE_ITEM.FKANALISE = OLD.FKANALISE INTO :QTD;
    if (QTD = 0) then
    BEGIN
        DELETE FROM BD_ANALISE WHERE BD_ANALISE.PKANALISE = OLD.FKANALISE;
    END
End



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:55
Para: FireBase <lista em firebase.com.br>
Assunto: Re: [firebase-br] RES: Trigger After Delete

Olá Matheus.
O fato é que mesmo após o comando *delete, *esse select dentro da trigger
está retornando que possui 1 registro.

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*

Em 4 de setembro de 2015 16:49, Matheus Georg Mathias <
desenvolvedor5 em priorize.com.br> escreveu:

> 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
>
>
> ______________________________________________
> 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
>
______________________________________________
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