掌握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触发器。