初探 Oracle 触发器类型(oracle触发器类型)

在我们开发数据库时,要掌握一种可以表现数据库性能的强大方式——触发器,这些触发器可以监测表或视图来实现数据的自更新。Oracle数据库支持多种触发器类型,它们会在指定的数据库操作发生时触发触发器,从而允许我们改变执行特定操作的能力,这对维护数据库的完整性和一致性,创建高效的应用程序、保护数据显著地降低了编程人员的工作量。

这里我们来探索一下Oracle的触发器类型。首先,我们有一个叫做行级触发器的类型,它是基于表或表变量。这种触发器会在表中独立行或一组行发生更改时触发,例如,如果我们想在更改表行时发出提示我们只需要编写简单的触发器即可。

另一个Oracle的触发器类型叫做语言触发器,它是基于条件或事件,例如,当进行插入操作或连接器更改时,触发器可以像下面这样编写:

CREATE OR REPLACE TRIGGER trigger_name

BEFORE INSERT OR UPDATE ON table_name

FOR EACH ROW

BEGIN

IF :new.column_name = :old.column_name THEN

raise_application_error(-20200,’wrong value!’);

END IF;

END;

/

我们还有另一个类型叫做系统触发器,它是以管理角色及数据库管理活动等特征为关注点。管理角色定义为可以监测数据库事件的内部或外部事件,然后激活Scheduler作业和通知进程,例如,下面的语句可以在每次更新时获取警告短信:

CREATE OR REPLACE TRIGGER att_update_warning

AFTER

UPDATE ON attendance

BEGIN

dbms_alert.Signal(‘alert name’,threshold);

END

最后,我们还有定时触发器,它是依赖于特定时间来触发触发器,例如,当到达某个点时,将发出更新指令,语句如下:

Create or Replace Trigger trg_name

After Logon On Database

Begin

dbms_job.submit(job=>intial_job_number, what => ‘update_query’);

End;

/

从上面的内容中,可以看到,Oracle的触发器类型包含了行级触发器,语言触发器,系统触发器和定时触发器,其中行级触发器更为常用,它可以监测某些操作,新增,修改,删除等,确保数据完整,一致性,触发器不仅可以实现复杂的业务业务逻辑,而且提高程序员的工作效率。


数据运维技术 » 初探 Oracle 触发器类型(oracle触发器类型)