如何写触发器
分类:表级别,库级别,模式级别,视图
库级别的触发器
对数据库做 drop 操作,记录操作时间和用户?
create table tab1(name varchar(20),time1 date);
create trigger sysdba.a
after drop on database
begin
insert into tab1 values(user,sysdate);
end;
select * from tab1;
表级别的触发器:
案例:员工表工资发生变动,记录变动前和变后的值
create table TAB2 ( old_value int,new_value int);
create trigger sysdba.D
before update of salary on sysdba.emp
for each row
begin
insert into TAB2 values(:old.salary,:new.salary);
end;
注意: TAB2 表名要大写,最好不要建在 sysdba 中。
使用sysdba用户创建dmhr.employee表的更新触发器
create table dmhr .TAB2 ( old_value int ,new_value int );
create or replace trigger ljw
before update of salary on dmhr .employee
for each row
begin
insert into TAB2 values (: old .salary ,: new .salary );
end ;
update dmhr .employee set salary=1000 where rownum <5 ;
select * from dmhr .tab2 ;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31424253/viewspace-2725872/ ,如需转载,请注明出处,否则将追究法律责任。