Oracle数据库中的触发器:类型简介(oracle触发器类型)

Oracle数据库中的触发器是一种常用的功能,它可以在特定的数据库动作,如表记录更新、检查约束条件成立时,被触发执行指定的可执行程序。它一般用于实现各种数据库的审计和创建数据的默认值。

Oracle触发器分为三种类型:表级触发器、行级触发器和数据库事件触发器。

表级触发器,也称为DML触发器。它是表的结构的特定事件发生时执行的一个程序块,代码如下:

CREATE OR REPLACE TRIGGER trig_Name
BEFORE INSERT OR UPDATE OR DELETE
ON Table_Name
FOR EACH ROW
BEGIN
...
END;

其中Trigger_Name是触发器名称,Table_Name是你要在上面定义触发器的表名,BEFORE指定在更新之前执行触发器内容,INSERT,UPDATE和DELETE是需要捕获的DML操作类型,后续可以添加OR类型指令来捕获更多操作类型,FOR EACH ROW表示每次作操作时,被触发执行的内容,具体内容必须放在BEGIN和END关键字之间。

行级触发器,代码如下:

CREATE OR REPLACE TRIGGER trig_Name
FOR EACH ROW
BEGIN
...
END;

它与表级触发器的不同之处在于,它不需要指定表名以及捕获的操作,而是每次操作的一行数据都会被触发,执行FOR EACH ROW中的内容。

数据库事件触发器,也称为DDL触发器,它是由数据库操作(如创建、修改或删除表等)而触发的一个程序块,它是自动触发的,代码如下:

CREATE OR REPLACE TRIGGER trig_name
BEFORE DROP OR ALTER
ON SCHEMA
BEGIN
...
END;

其中Trigger_Name是触发器名称,BEFORE指定在准备操作前,DROP和ALTER表示要捕获的DDL操作,在SCHEMA级触发器中,Oracle支持COMMIT、ROLLBACK、EXECUTE及ASSOCIATE以及DECLARE等多种操作。

Oracle数据库中的触发器可以帮助我们减少数据库调优操作的时间,使用它,可以在检测到异常时及时反应,对数据库管理尤其是某些特定操作比较效率。


数据运维技术 » Oracle数据库中的触发器:类型简介(oracle触发器类型)