深入理解 Oracle 数据库 中各类触发器(oracle触发器类型)

深入理解 Oracle 数据库 中各类触发器

Oracle数据库中的触发器是一类特殊的程序,可以大大提高程序效率、减少系统管理等高级程序设计任务。它可以像一个用户或ORACLE数据库管理程序一样加以管理,但它只在你触发要求的动作完成时才运行。

Oracle数据库中的触发器可以分为以下几种:

1. 在表上定义的触发器:这种触发器有时也被称为表级触发器,用于监测更新,删除和插入表的数据。我们可以在数据表上定义多个触发器,从而保持表的完整性和可用性。

例如:

CREATE OR REPLACE TRIGGER employee_ins

BEFORE INSERT

ON employees

FOR EACH ROW

BEGIN

IF (:NEW.employee_id IS NULL)

THEN

RAISE_APPLICATION_ERROR(-20001, ‘员工编号不能为空’);

END IF;

END;

2. 在数据库标准事件上定义的触发器:这种触发器在数据库级别定义,在某个具体目标上定义。它可以在任何时间点发生,只要这些条件得到满足。

例如:

CREATE OR REPLACE TRIGGER alert_stat

WHEN LOGON

BEGIN

DBMS_OUTPUT.PUT_LINE (‘有用用户登陆数据库!’);

END;

3. 在系统视图上定义的触发器:这种触发器用处比较有限,它可以用于监控数据库中的系统表的更改。

例如:

CREATE OR REPLACE TRIGGER system_trig

BEFORE UPDATE

ON sys.user$

BEGIN

DBMS_OUTPUT.PUT_LINE (‘正在更新系统表’);

END;

理解Oracle触发器,能有效的提升数据库应用程序的性能,维护数据库的完整性以及实现数据库重构所需的通知和审计。它可以大大提高程序效率,提高系统稳定性,节省大量的时间和精力。触发器还能帮助程序员更好地维护数据库的完整性,确保可用性并简化系统管理。


数据运维技术 » 深入理解 Oracle 数据库 中各类触发器(oracle触发器类型)