触发器中怎样实现插入数据后再删除这条数据
往A表里面插入数据,先判断这条数据的IS_TEST字段,如果是0就插入B表中,然后在A表中将这条数据删除。如果是1就不插入B表,也就是不做任
何操作。这是写的插入数据的触发器,怎么在里面添加语句实现删除操作。
create or replace trigger TRG_DXP_MATERIEL_APPLY_INSERT
after insert on DXP_MATERIEL_APPLY
for each row
DECLARE
BEGIN
if :NEW.IS_TEST=0 then
INSERT INTO ods_epbi.DXP_MATERIEL_APPLY(
TAB_YEAR,
TAB_MONTH,
TAB_DAY,
APPLY_ID,
APPLY_TYPE,
UNIT_CODE,
UNIT_NAME,
IS_TEST,
DXP_MATERIEL_APPLY_ID,
DEPT_CODE) VALUES(
:NEW.TAB_YEAR,
:NEW.TAB_MONTH,
:NEW.TAB_DAY,
:NEW.APPLY_ID,
:NEW.APPLY_TYPE,
:NEW.UNIT_CODE,
:NEW.UNIT_NAME,
:NEW.IS_TEST,
:NEW.DXP_MATERIEL_APPLY_ID,
:NEW.DEPT_CODE);
end if;
end;
谢谢各位了!!!!!!
------解决方案--------------------
有2个办法:1。修改你的程序,在程序中直接判断IS_TEST是否等于0,如果等于0就直接插入B表;
2。在表B上也建立一个触发器,一旦表B收到一条IS_TEST=0的数据,就去A表把这条数据删掉;
推荐方法1,方法2不太好