Triggers 删除(或不插入)trgger中的新行

Triggers 删除(或不插入)trgger中的新行,triggers,insert,db2,Triggers,Insert,Db2,我使用DB2Express-C。 我在一个表上有一个INSERT触发器,将新行插入到另一个表中。 有没有办法不将新行插入到定义触发器的表中 非常感谢您提供的任何帮助,谢谢您请查看以下选项: 指定关联的已触发操作替换该操作 反对主体观点。只允许使用一个代替触发器 给定主题视图上的每种操作(SQLSTATE 428FP) 通常,可以通过评估特殊寄存器(例如,当前用户)是否具有特定值来完成类似的操作 create trigger trigger1 after insert on schema.

我使用DB2Express-C。 我在一个表上有一个INSERT触发器,将新行插入到另一个表中。 有没有办法不将新行插入到定义触发器的表中

非常感谢您提供的任何帮助,谢谢您

请查看以下选项:

指定关联的已触发操作替换该操作 反对主体观点。只允许使用一个代替触发器 给定主题视图上的每种操作(SQLSTATE 428FP)


通常,可以通过评估特殊寄存器(例如,
当前用户
)是否具有特定值来完成类似的操作

create trigger trigger1
    after insert on schema.table
    referencing new as n
    for each row
    when (CURRENT USER <> 'NAMSARAY')
       insert into schema.tablecopy values (n.c1, n.c2, ...);
然后可以在触发器中检查此变量的值。除非应用程序明确地将变量设置为预定值(-9999),否则触发器将触发:

create trigger trigger2
    after insert on schema.table
    referencing new as n
    for each row
    when (schema.var1 <> -9999)
       insert into schema.tablecopy values (n.c1, n.c2, ...);
创建触发器触发器2
在schema.table上插入后
引用新的as n
每行
何时(schema.var1-9999)
插入schema.tablecopy值(n.c1,n.c2,…);

您是否在问如何避免insert触发?是的,没错,在一张桌子上
create trigger trigger2
    after insert on schema.table
    referencing new as n
    for each row
    when (schema.var1 <> -9999)
       insert into schema.tablecopy values (n.c1, n.c2, ...);