精通Oracle中的触发器类型及其使用(oracle触发器类型)

Oracle触发器是一种用于自动执行操作的Database Object,它会在数据库中发生特定操作时被激活,例如sql语句被执行,数据库变更,等等。Oracle触发器可以分为三类:表级触发器(table-level trigger),行级触发器(row-level trigger)和数据库触发器(database-level trigger)。

表级触发器(table-level trigger)可以定义为在对数据库表执行 DML(包括INSERT,UPDATE,DELETE)时被触发的触发器。 表级触发器可以应用于DML操作,检查语句的完整性,保持数据库的一致性和安全性,及操作指定表的数据。 例如,在插入新行时:

CREATE OR REPLACE TRIGGER trg_name

BEFORE INSERT ON table_name

FOR EACH ROW

DECLARE

BEGIN

— trigger code

END;

/

行级触发器(row-level trigger)可以定义为在对数据库中的每行执行DML时触发的触发器,它们主要应用于维护数据库中多行间的一致性,例如,在更新操作时:

CREATE OR REPLACE TRIGGER trg_name

AFTER UPDATE OF column_name

ON table_name

FOR EACH ROW

BEGIN

— trigger code

END;

/

数据库触发器(database-level trigger)是在整个数据库实例外部变化时触发的触发器,一般情况下它们被用于监控系统和数据库。 数据库级触发器可以应用于DDL操作及处理数据库对象的变化,如如创建,删除,修改等等。 例如,在数据库中更改USER时:

CREATE OR REPLACE TRIGGER trg_name

AFTER ALTER ON schema

BEGIN

— trigger code

END;

/

上述三类触发器代码示例仅是使用了简单的 PL / SQL 代码。触发器的功能远不止此,它们可以用于执行许多其他类型的任务,比如更新另一个表,维护日志,或者执行自定义的存储过程。精通Oracle中的触发器类型及其使用对数据库管理员和开发人员非常重要,可以构建强大的,可靠的、安全的数据库应用。


数据运维技术 » 精通Oracle中的触发器类型及其使用(oracle触发器类型)