• 行级DML触发器的创建
create or replace trigger tri_goods 
after insert or update or delete
on goods
for each row
begin
    if inserting then 
       insert into g_modify (oper_type,oper_time,goodsid,goodsname,remark,g_modify_id)
              values('添加的数据',sysdate,:new.goodsid,:new.goodsname,:new.remark,g_modify_id.nextval);
    elsif deleting then 
        insert into g_modify (oper_type,oper_time,goodsid,goodsname,remark,g_modify_id)
              values('删除的数据',sysdate,:old.goodsid,:old.goodsname,:old.remark,g_modify_id.nextval); 
    else
          insert into g_modify (oper_type,oper_time,goodsid,goodsname,remark,g_modify_id)
              values('修改的数据',sysdate,:old.goodsid,:old.goodsname,:new.remark,g_modify_id.nextval);
    end if;  
end;

 

使用when,case……when

create or replace trigger tri_goods2 
after insert or update or delete
on goods2
for each row
when (new.goodsid =100)
begin
    case 
    when  inserting then 
       insert into g_modify (oper_type,oper_time,goodsid,goodsname,remark,g_modify_id)
              values('添加的数据',sysdate,:new.goodsid,:new.goodsname,:new.remark,g_modify_id.nextval);
    when deleting then 
        insert into g_modify (oper_type,oper_time,goodsid,goodsname,remark,g_modify_id)
              values('删除的数据',sysdate,:old.goodsid,:old.goodsname,:old.remark,g_modify_id.nextval); 
    when updating then
          insert into g_modify (oper_type,oper_time,goodsid,goodsname,remark,g_modify_id)
              values('修改的数据',sysdate,:old.goodsid,:old.goodsname,:new.remark,g_modify_id.nextval);
    end case;  
end;

 

 

相关文章:

  • 2021-10-04
  • 2021-10-04
  • 2022-12-23
  • 2021-08-03
  • 2021-07-05
  • 2022-12-23
猜你喜欢
  • 2022-01-29
  • 2021-11-13
  • 2021-10-03
  • 2022-03-02
  • 2021-11-01
  • 2021-09-03
  • 2021-04-25
相关资源
相似解决方案