Oracle数据库中使用触发器的类型简介(oracle触发器类型)

Oracle数据库中使用触发器是一种常见的数据库性能优化方法,可以使用触发器来实现自动化、数据完整性与安全性控制等服务。

Oracle 数据库中使用的触发器分两种:BEFORE 触发器与AFTER 指令。BEFORE 触发器会在 Oracle 数据库的表(或视图)上的数据发生更改时就立刻被触发;AFTER 触发器会在该表(或视图)的数据更改完成后才被触发。

BEFORE 触发器有如下 3 种:

1、BEFORE INSERT 触发器:在加入新纪录到数据库表中前触发;

2、BEFORE UPDATE 触发器:在更新数据库表中纪录前触发;

3、BEFORE DELETE 触发器:在删除数据库表中纪录前触发。

AFTER 触发器有如下 3 种:

1、AFTER INSERT 触发器:在加入新纪录到数据库表中后触发;

2、AFTER UPDATE 触发器:在更新数据库表中纪录后触发;

3、AFTER DELETE 触发器:在删除数据库表中纪录后触发。

Oracle数据触发器的实现需要用到DML触发器语句和PL/SQL语句:

创建 DML 触发器时,需要使用以下语句:

CREATE OR REPLACE TRIGGER trigger_name

BEFORE INSERT OR UPDATE OR DELETE ON table_name

FOR EACH ROW

BEGIN

SQL Statements;

END

例如,以下触发器会检查新插入到 orders 表(或视图)中的纪录是否包含合法的 shipment_date 值:

CREATE OR REPLACE TRIGGER chk_shpdate

BEFORE INSERT OR UPDATE ON orders

FOR EACH ROW

BEGIN

IF (:NEW.shipment_date

RAISE_APPLICATION_ERROR(-20001,’Shipment date must be greater than or equal to current date’);

END IF;

END;

Oracle数据触发器可以帮助实现自动审计、安全控制、数据完整性以及性能优化的服务,它是Oracle数据库管理的必要工具之一。


数据运维技术 » Oracle数据库中使用触发器的类型简介(oracle触发器类型)