1. 简介
- 定义:触发器是针对数据表(库)的特殊的存储过程,当这个表发生了 Insert、Update或Delete操作时,会自动激活执行的,可以处理各种复杂的操作。
- 特点:触发器不需要人为去调用,也不能调用
- 分类:行级触发器和语句级触发器
- DML触发器:DML触发器是当数据库服务器中发生数据操作语言(Data Manipulation Language)事件时执行的存储过程。
- DDL触发器:DDL触发器是在响应数据定义语言(Data Definition Language)事件时执行的存储过程。DDL触发器一般用于执行数据库中管理任务。如审核和规范数据库操作、防止数据库表结构被修改等
2. 语法
- 触发器的语法
create [or replace] tigger 触发器名
触发时间(AFTER、BEFORE) 触发事件(INSERT或DELETE或UPDATE)
on 表名
[for each row]
begin
pl/sql语句
end
- 名词解释
- 触发器名:触发器名称,一般为TR_(触发事件首字母)_表名_备注,如TR_I_BOOK
- 触发时间:可选择
AFTER
或BEFORE
,AFTER
表示在数据库动作之后执行,BEFORE
表示在数据库动作之前执行 - 触发事件:数据库增
insert
、删delete
、改update
等操作 - 表名:触发器所在的表,即被触发器执行的对象
for each row
:对表的每一行触发器执行一次
3. 例子
1、不允许在周末修改表
create or replace trigger auth_secure before