create trigger biufer_employees_department_id
before insert
or delete
or update of department_id
on employees
referencing old as old_value
new as new_value
for each row
when (new_value.department_id<>80 )
begin
:new_value.commission_pct :=0;
end;
create table Eic_mend_copy as select *from Eic_mend;
2、 建立日志表
create table employees_log( user_name varchar2(30), time date);
3、 建立触发器:
Create or replace trigger biud_Eic_mend_copy
after insert or update or delete
on Eic_Mend_copy
Begin
Insert into Eic_mend_log(user_name,time)
values( user, sysdate);
end;
4、 测试数据
insert into Eic_Mend_copy(mendid,mendname) values(110,'武警');
[试验2]
1、 修改日志表
alter table Eic_mend_log add (action varchar2(20));
2、 修改触发器,以便记录用户操作语句类型。
create or replace trigger biud_eic_mend
after insert or update or delete
on eic_mend_copy
declare
l_action eic_mend_log.useraction%type;
Begin
if inserting then
l_action:='Insert';
elsif updating then
l_action:='Update';
elsif deleting then
l_action:='Delete';
else raise_application_error(-20001,'You should never ever get this error.');
end if;
insert into eic_mend_log(name,time,useraction)
values( user,sysdate, l_action);
End;
3、 测试
insert into Eic_mend_copy( mendid, mendname, sex)
values(12345,'laoli','男');
update Eic_mend_copy set mendname='pretty' where mendid=12345;
delete from eic_mend_copy where mendid=110;