掌握Oracle触发器的分类及使用方法(oracle触发器类型)

一、Oracle触发器的分类

Oracle触发器可以根据使用场景以及其它特征分为以下三种:

1.普通触发器

普通触发器就是把要执行的代码指定到INSERT、UPDATE或DELETE事件上。比如我们在表中写入、更新或删除时,约束条件不能通过,普通触发器也可以检查,并且可以建立一个不同于条件,更加复杂的触发器来检查表中是否有违反数据完整性的情况。典型的普通触发器例子如下:

““

CREATE OR REPLACE TRIGGER X_T

BEFORE INSERT OR UPDATE OR DELETE ON X_TABLE

FOR EACH ROW

BEGIN

IF :NEW.Y_COLUMN = ‘Y’ THEN

—想要实现的功能

END IF;

END;

/

““

2.级联触发器

当在一副表上发生操作后,需要联动另外一个表。此时就可以使用级联触发器,通过他们实现表的联动操作。典型的级联触发器例子如下:

““

CREATE OR REPLACE TRIGGER X_T_C

AFTER INSERT ON X_TABLE

FOR EACH ROW

BEGIN

INSERT INTO Y_TABLE(Y_COLUMN) VALUES(:NEW.X_COLUMN);

END;

/

““

3.组合触发器

组合触发器可以在一组表上发生操作,同时也可以在多个表中实现联动,其功能强大,常用于复杂的事务处理中,典型的组合触发器例子如下:

““

CREATE OR REPLACE TRIGGER X_T_G

AFTER INSERT OR UPDATE OR DELETE ON X_TABLE

FOR EACH ROW

BEGIN

INSERT INTO Y_TABLE(Y_COLUMN) VALUES(:NEW.X_COLUMN);

UPDATE Z_TABLE SET Z_COLUMN = SYSDATE;

END;

/

““

二、Oracle触发器使用方法

1.触发器的编写

在创建触发器前,首先要知道当哪些操作发生的时候就要执行这个触发器,以及写在此触发器中需要做什么,当确定好操作与要做的事情,就可以开始创建触发器了:

CREATE OR REPLACE TRIGGER 触发器名称
{BEFORE|AFTER} {INSERT|UPDATE|DELETE}
ON 表名
[FOR EACH ROW]
BEGIN
--要执行的SQl语句
END;
/

2.启用/禁用触发器

默认情况下,触发器是启用的,当满足触发条件时,自动触发,可以使用DISABLE命令禁用触发器,使用ENABLE命令可以重新启用触发器:

““

DISABLE TRIGGER 触发器名称

ENABLE TRIGGER 触发器名称

““

3.删除触发器

如果触发器不再需要,可以使用DROP命令删除:

““

DROP TRIGGER 触发器名称

““

综上所述,Oracle触发器是一种有效而强大的工具,只要理解它的分类以及使用方法,就可以很好的掌握Oracle触发器。


数据运维技术 » 掌握Oracle触发器的分类及使用方法(oracle触发器类型)