深入探索Oracle触发器的种类.(oracle触发器类型)

Oracle数据库中的触发器证明是一个功能强大的数据库对象,它可以检查自定义事件发生时自动执行复杂的操作,并使用其他的功能,如外键和存储过程等,可以帮助DBA让系统的操作更自动化,更安全。Oracle触发器按其工作性能,可以分为以下几类:

1.行级触发器:当在表中出现insert、update 或 delete 的操作时,触发器就会被“触发”作出相应的动作。下面是一个演示行级触发器的例子:

CREATE OR REPLACE TRIGGER 更新前

BEFORE UPDATE OF MIN_SAL FOR EMPLOYEES

BEGIN

INSERT INTO BEFORE_TABLE VALUES (:OLD.ENAME, :OLD.SAL,SYSDATE);

END;

/

该触发器是“更新前”触发器,它被触发时,操作员将会在BEFORE_TABLE表中添加一条记录,记录EMPLOYEES表中EMPLOYEE NAME,SALARY以及操作时间。

2.表级触发器:当有操作员对表执行insert、update 或 delete等操作时,触发器就会发挥作用。触发器可以能够捕获操作员所做表操作,并检查和验证这些操作,这样就可以保护表免受恶意攻击。下面是表级触发器的一个示例:

CREATE OR REPLACE TRIGGER 备份前 THEN

BEFORE DELETE ON EMPLOYEES

BEGIN

INSERT INTO PAST_EMPLOYEES SELECT * FROM DELETED;

END;

/

该触发器是“备份前”触发器,当操作员从EMPLOYEES table中删除记录时,触发器就会被触发,将EMPLOYEES table中被删除的数据复制到PAST_EMPLOYEES table中,以备将来可能需要使用。

3.“替换式”触发器:当对表的操作要求的不是“增加”或“删除”,而是“更新”时,“替换式”触发器就能发挥作用。该触发器可以在表中出现更新后,按照设定的要求,进行替换,下面是一个演示如何创建一个“替换式”触发器的例子:

CREATE OR REPLACE TRIGGER 更改小写

AFTER UPDATE OF SLARY FOR EMPLOYEES

BEGIN

UPDATE EMPLOYEES

SET SALARY= LOWER(SALARY)

WHERE EMPLOYEE_ID=:OLD.EMPLOYEE_ID

END;

/

该触发器是“更改小写”触发器,它只在EMPLOYEES表中SALARY字段更新后被触发,它将SALARY调整为小写的格式。

以上就列举了Oracle 触发器的常用类型,Oracle的触发器是一个非常强大的工具,它可以自动,安全地完成许多数据库管理任务,为系统提供许多便利,改善访问者的体验。


数据运维技术 » 深入探索Oracle触发器的种类.(oracle触发器类型)