J'ai mis en place un trigger sur une table DB2 (AFTER INSERT OR DELETE OR UPDATE).
Il existe encore des PGM qui utilise cette table avec une description interne :
J'ai fait un test, mon déclencheur est appelé. Je ne vois pas pourquoi la DB ferait l'appellerait selon ce critère. C'est systématique ? Quel est son état dans DSPFD du fichier ?
create table mabib.ttrg_log (
t char(1) not null,
like mabib.ttrg
)
create or replace trigger mabib.ttrg_trg after INSERT OR DELETE OR update on mabib.ttrg
referencing old row as old new row as new for each row mode db2row
set option dbgview = *source
begin
declare t char(1);
set t = case when inserting then 'I' when updating then 'U' when deleting then 'D' end;
insert into mabib.ttrg_log (t, c1, k, c2) values (t, coalesce(new.c1, old.c1), coalesce(new.k, old.k), coalesce(new.c2, old.c2));
end;
call qcmdexc('call mabib/ttrg');
select * from mabib.ttrg
select * from mabib.ttrg_log
Après le call ttrg est vide et ttrg_log contient :