Oracle触发器:不同类型的应用(oracle触发器类型)
Oracle触发器(Triggers)允许Sql表达式和PL/SQL块的执行,从而实现基于特定的事件的任务自动化,如修改表数据、检查参数有效性、维护主外键等。Oracle触发器分为四类:”BEFORE”,”AFTER”,”INSTEAD OF”和”COMBINATION”类型。
1.BEFORE类型触发器,可以在数据行新建、删除或是更新时发生,在事实发生前运行,如:
CREATE OR REPLACE TRIGGER TRIGGERNAME
BEFORE INSERT OR DELETE OR UPDATE ON TABLE_NAME
FOR EACH ROW
BEGIN
–trigger body
END;
2.AFTER类型触发器,在数据表发生插入、删除或更新行操作后发生,可以通过它实现记录日志,如:
CREATE OR REPLACE TRIGGER TRIGGERNAME
AFTER INSERT OR DELETE OR UPDATE ON TABLE_NAME
FOR EACH ROW
BEGIN
–trigger body
END;
3.INSTEAD OF类型触发器,在视图操作时发生,可以将DML或者DDL语句更改为其他形式(可以是对相关数据表的操作),如:
CREATE OR REPLACE TRIGGER TRIGGERNAME
INSTEAD OF INSERT OR DELETE OR UPDATE ON VIEW_NAM
BEGIN
–trigger body
END;
4.COMBINATION类型触发器,由多个触发器组成,可以将混合的表操作(DDL和DML)组合成一个触发器创建,如:
CREATE OR REPLACE TRIGGER TRIGGERNAME
AFTER INSERT OR DELETE OR UPDATE ON TABLE_NAME
FOR EACH ROW
BEGIN
–DML Statement here
–DDL Statement here
END;
Oracle触发器的运用可以获得更好的业务和应用功能,满足不同的需求。它可以便捷的实行表较小操作的定期任务,更大程度地减少程序开发时间,提高了数据库的稳定性和质量,可以在数据的改动、删除时实施一定的控制,从而保证数据的完整性,同时还可以与程序结合起来,对用户有一种特定的响应。