二十三、触发器:自动执行的存储过程

版权声明:本文为博主原创文章,未经博主允许欢迎转载,请注明原文链接。一起交流,共同进步。 https://blog.csdn.net/newbie_907486852/article/details/84642930

                                       触发器:自动执行的存储过程

创建触发器语法:

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、用户事件、系统事件触发器

数据库系统事件、用户事件触发的触发器。

猜你喜欢

转载自blog.csdn.net/newbie_907486852/article/details/84642930
今日推荐