oracle触发器

基础就不说了,放一个用的东西比较多的触发器,以后方便看

create or replace trigger test1_update
after update
on test1
for each row
  
declare
pragma autonomous_transaction;
  field VARCHAR2(2000);
  sum1 integer;
begin
  select count(1) into sum1 from changelog where id=:new.id and table_name='test1';
  if sum1<>0 then
    select update_field into field from changelog where id=:new.id and table_name='test1';
  end if;
  if updating ('clum1') then
    select field||'clum1,' into field from dual;
  end if;
  if updating ('clum2') then
     select field||'clum2,' into field from dual;
  end if;
  insert into changelog values(:old.id,'test1','0','update',field,sysdate,'','','');
end;

输出语句是dbms_output.put_line('name字段被修改');

方便查看变量的值对不对。

posted @ 2018-02-06 17:04  Ice_Blue_Brother  阅读(171)  评论(0编辑  收藏  举报