触发器是当我们在执行某些操纵的时候,在特定条件下,Oracle会自动的执行触发器相应的代码
一:DML触发器
DML触发器是指基于DML操作所创建的触发器,在建立了DML触发器以后,如果执行相关的DML语句,那么Oracle会隐含的执行触发器的代码,包括语句触发器和行触发器
1. 语句触发器
create [or replace] trigger trigger_name
{before | after} event1 or event2........
on table
begin
....
end;
【实例1】 建立一个before语句触发器
create or replace trigger tr_sec_emp
before insert or update or delete
on emp
begin
if to_char(sysdate,'DY','nls_date_language=AMERICAN')
in('SAT','SUN') then
raise_application_error(-20600,'不能在休息日更改员工信息');
end if;
end;
/
【测试1】uodate emp set sal=sal*1.1 where deptno=10;
【实例2】建立一个after语句触发器