二十三、觸發器:自動執行的儲存過程
阿新 • • 發佈:2018-12-02
觸發器:自動執行的儲存過程
建立觸發器語法:
CREATE TRIGGER 觸發器名 [before|after|instead of] 觸發事件 on 表名或者檢視名或者使用者名稱或者資料庫名 [for each row] [觸發條件表示式] [declare 變數] begin sentences; end 觸發器名;
1、DML觸發器
DELETE、INSERT、UPDATE語句前後觸發的觸發器。
create or replace trigger auth_secure
before insert or update or DELETE
on tb_emp
begin
IF(to_char(sysdate,'DY')='星期日') THEN
RAISE_APPLICATION_ERROR(-20600,'不能在週末修改表tb_emp');
END IF;
END;
2、DDL觸發器
ALTER、DROP、CREATER前後觸發的觸發器。
create table ddl_oper_emp ( db_obj varchar2(20), db_obj_type varchar2(20), oper_action varchar2(20), oper_user varchar2(20), opre_date date ); create or replace trigger tri_ddl before create or alter or drop on hr.schema begin insert into ddl_oper_emp values(ora_dict_obj_name,ora_dict_obj_type,ora_sysevent,ora_login_user,sysdate); end tri_ddl;
3、複合觸發器
一個觸發器中包含四種類型觸發器。
4、INSTEAD OF觸發器
作用於檢視的觸發器。
5、使用者事件、系統事件觸發器
資料庫系統事件、使用者事件觸發的觸發器。