Oracle触发器可以让开发人员编写数据库端的逻辑代码,这些逻辑代码会在发生某种数据变化时被自动触发执行,从而实现对数据的更新、删除和插入操作。触发器可以以“系统级类型”或者“记录级类型”来分类。
首先,系统级触发器是指以定义数据库初始化、表数据及系统状态的改变的。由于系统级触发器是针对整个表触发,当框架表发生事件时,系统级触发器即被执行,因此,它需要做出有效响应,以提高系统效率。
例如,系统级触发器可用于跟踪系统级变量的变化,以此来处理数据库的脏读,其基本语句如下:
“`
Create or Replace Trigger dirty_read_trigger
After insert or update or delete
on Table_Name
For EACH ROW
As
— 增删改部分
End;
另一方面,记录级触发器,是指可以针对每条记录进行操作或者计算的触发器, 触发器会监控指定表上的每条记录,如果数据发生更改或新增操作,则对相应记录触发该触发器。
例如,记录级触发器可以同时针对“删除”、“更新”和“增加”这三个操作,并向不同表插入不同的变更后的内容,其基本语句如下:
```
Create or Replace Trigger record_level_trigger
after delete or update or insert
on Table_Name
For Each Row
As
--增删改部分
End;
总的来说,Oracle 触发器可以分为“系统级类型”和“记录级类型”,前者的作用主要是监控整张表的变化,而后者则是针对每条记录进行操作,这两种类型的触发器都可以提高数据库性能,提升开发人员的效率,比较常用于SQL脚本中。