Oracle 数据库中灵活的触发器类型(oracle触发器类型)
Oracle 数据库提供了多种触发器类型。以下概述了Oracle触发器的不同类型及其应用。
1. 行级触发器:行级触发器是在一行记录发生某种变化时被触发的一种触发器。当与表定义相关联的行被插入、修改或者删除时,行级触发器就会激活,随后数据库服务器执行相关操作。Oracle行级触发器的语法格式如下:
CREATE OR REPLACE TRIGGER trigger_name |time
BEFORE |AFTER
INSERT | UPDATE |DELETE or {INSERT orDELETE or UPDATE}
ON table_name
FOR EACH ROW
BEGIN
— trigger body [Procedure]
END;
2. 表级触发器:表级触发器是指只要有对数据库表的更改操作发生,那么触发器就会激活。它不会检查具体操作哪一行或几行,而是针对表上所有受改变的行数据进行处理。Oracle表级触发器的语法格式如下:
CREATE OR REPLACE TRIGGER trigger_name |time
BEFORE |AFTER
INSERT | UPDATE |DELETE or {INSERT orDELETE or UPDATE}
ON table_name
BEGIN
— trigger body [Procedure]
END;
3. 正如前面提到的,Oracle也支持组合触发器,即同一个数据库表上同时定义多个触发器。它有两种形式:新的和旧的。
新的形式(推荐):
CREATE OR REPLACE TRIGGER trigger_name |time
{BEFORE |AFTER }
{referring_clause}
{FOR EACH ROW | FOR EACH STATEMENT}
BEGIN
— trigger body [Procedure]
END;
旧的形式:
CREATE OR REPLACE TRIGGER trigger_name |time
BEFORE |AFTER
{INSERT | UPDATE | DELETE or {INSERT or DELETE or UPDATE} }
ON table_name
{REFERENCING old_name [, …] | FOR EACH ROW }
BEGIN
— trigger body [Procedure]
END;
通过以上对比,我们可以看到,Oracle的触发器类型灵活,既可以针对单行数据,也可以针对整个表进行操作,可以大幅度提高应用程序的效率。因此,Oracle触发器广泛应用于大型企业和电子商务应用程序中。