Oracle触发器:不同类型的特性与应用(oracle触发器类型)

Oracle触发器是Oracle数据库的一种特殊程序,可以在指定的数据库操作发生时执行某种任务,通常是改变某种数据库状态的动作。Oracle触发器的代表性用途有:为表添加操作日志记录;在一条特定记录被插入、修改或删除时自动对另一张表发生对应操作;在某事件发生时把消息发送给指定用户。

Oracle触发器可以分为三种类型:

(1)行级触发器:行级触发器在某行上的特定操作发生时被激发。比如在更新某行时,行级触发器就可以被激发,执行一定的操作。行级触发器不允许访问修改操作时受影响的行。

例如:

CREATE OR REPLACE TRIGGER salary_update

AFTER UPDATE OF salary ON emp

FOR EACH ROW

BEGIN

INSERT INTO salary_update_log (

emp_no,

old_salary,

new_salary

)

VALUES (

:old.emp_no,

:old.salary,

:new.salary

);

END;

(2)表级触发器:表级触发器在某表上的特定操作发生时被激发,它不关心操作发生在哪一行。当一些特定的记录发生变化时,表级触发器可以被激发,从而对这些记录进行一些处理。

例如:

CREATE OR REPLACE TRIGGER table_update

AFTER UPDATE ON emp

BEGIN

— Log update operations

INSERT INTO table_update_log

VALUES (USER, SYSDATE);

END;

(3)时间级触发器:时间级触发器可以按指定的时间计划被激发,它可以每天、每周或每月被激发。

例如:

CREATE OR REPLACE TRIGGER time_trigger

AFTER START ON DATABASE

BEGIN

— perform database maintenance

EXECUTE maintenance_job;

END;

Oracle触发器有许多用处,各种不同类型的触发器都有不同的特性,每种类型有不同的用途,可以根据数据库要求合理地使用这些功能来实现不同的目标。


数据运维技术 » Oracle触发器:不同类型的特性与应用(oracle触发器类型)