Oracle中触发器(Trigger)可以实现对数据库操作的自动化,是Oracle数据库中的一个重要组件,可提供DML约束、操作记录等功能。它分为三类:表触发器,视图触发器和数据库触发器。
**表触发器**
表触发器是指基于给定表发生的某项操作来启动执行某项动作的触发器,也就是说,当某项操作在特定的表上发生时,Oracle会自动执行相关的操作,有重点的插入、修改、更新和删除操作,如下:
-- 创建表触发器
CREATE TRIGGER trigger_name
AFTER INSERT
ON table_name
FOR EACH ROW
BEGIN
-- 触发器执行语句
END;
**视图触发器**
视图触发器也称作物化视图触发器,指的是基于对视图上发生的操作,而来启动执行某项动作的触发器,例如,当用户在视图上插入数据或者更新数据时,视图触发器会被触发,再然后Oracle会执行相关的操作,如下:
-- 创建视图触发器
CREATE TRIGGER trigger_name
AFTER INSERT
ON view_name
FOR EACH ROW
BEGIN
-- 触发器执行语句
END;
**数据库触发器**
数据库触发器是指数据库级别是触发器,它比表触发器和视图触发器有更广的作用面。比如:当数据库级别的事务(data-modification-language)操作发生时,数据库触发器就会被触发,而且不限于表或视图,它可以在发生操作之前或发生操作之后执行特定的操作,如下:
-- 创建数据库触发器
CREATE TRIGGER trigger_name
BEFORE LOGON
ON DATABASE
FOR EACH ROW
BEGIN
-- 触发器执行语句
END;
以上就是Oracle中触发器的三类,分别是表触发器、视图触发器和数据库触发器,各类触发器有自己具体的应用,当某类操作在特定的表或视图上发生时,可以通过具体的创建语句来实现编写触发器,实现自动化管理数据库操作。