plsq程序设计--触发器

首先,创建一张log表,用于记录对emp2表的操作
create table emp2_log
(
uname varchar2(20),
action varchar2(10),
atime date
);


创建触发器,触发器必须依附于一张表存在
create or replace trigger trig
--没有 for each row参数,出发其只会执行一次
--after指在执行操作后,还额可以是befor
--insert or delete or update on emp2,对emp2表进行insert or delete or update操作时,激活触发器
  after insert or delete or update on emp2
  --after insert or delete or update on emp2 for each row
  --如果加上 for each row 的话,触发器会按照被影响数据数量来决定执行次数。
begin
  if inserting then
     insert into emp2_log values(USER, 'insert', sysdate);
  elsif updating then
     insert into emp2_log values(USER, 'update', sysdate);
  elsif deleting then
     insert into emp2_log values(USER, 'delete', sysdate);
  end if;
end;


检验触发器
-- 执行(5)多次update操作
update emp2 set sal = sal * 2 where deptno = 30;

-- for each row打开,则会增加5条记录
-- for each row关闭,则会增加1条记录
select * from emp2_log;

你可能感兴趣的:(sql)