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数据库管理的必要工具之一。