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