Oracle数据库中触发器类型和应用示例(oracle触发器类型)

Oracle数据库中触发器类型和应用示例

触发器是Oracle数据库中常用的一种数据库对象,他可以自动响应数据库表中特定动作发生时来实现操作。Oracle数据库提供了两种触发器类型,即行触发器和表触发器,这两个触发器各有特点,在不同应用场景中各有优劣。

行触发器是Oracle数据库中最常用的一种触发器,他只有在表中发生记录行插入,更新或删除时才会执行。下面是一个使用行触发器来实现在向表中插入新记录时根据日期更新另一列记录的应用示例:

CREATE TRIGGER trg_order
AFTER INSERT ON orders
FOR EACH ROW
DECLARE
dt_now timestamp;
BEGIN
select sysdate into dt_now from dual;
update orders
set orders.order_date = date'+ryw
where orders.orders_id = :new.orders_id;
END;
/

表触发器是在表的操作上触发的操作,而不是表的记录行上触发的操作。表触发器会在表上发生插入,更新,删除或其他操作时触发,下面是一个使用表触发器来记录每个表操作涉及的总行数的应用示例:

CREATE TRIGGER trg_order_sum
AFTER INSERT ON orders
BEGIN
update order_summary
set order_number = count(*)
where order_date = date'+ryw;
END;
/

从上面的两个示例可以看出,Oracle数据库中行触发器和表触发器都可以用来实现不同的数据库运行时操作。行触发器可以实现在插入表记录时根据日期自动更新记录,而表触发器则可用于记录表记录更新情况等应用场景。


数据运维技术 » Oracle数据库中触发器类型和应用示例(oracle触发器类型)