深入理解Oracle 触发器的类型和用法(oracle触发器类型)

Oracle 触发器是指在执行特定数据库操作时发出指令,根据用户定义在特殊表上插入或修改行来相应响应。也就是说,Oracle 触发器可以在某一特定的表或者视图发生变更时,自动触发执行的代码。它可以定义在表、视图以及数据库层面,只要满足触发器规定的条件,触发器就会立即被调用。

Oracle 触发器主要有两种类型:表触发器和数据库触发器。表触发器定义在特定表上,当特定的表收到insert、update或delete行为触发器就会立即被调用(即使受影响的行数为0也会触发)。

下面的示例说明了如何创建一个表触发器:

“`sql

CREATE OR REPLACE TRIGGER example_trigger

AFTER INSERT

ON Employee

FOR EACH ROW

— Using the :new pseudo-record

— to refer to the just-inserted employee

BEGIN

INSERT INTO other_table

VALUES (:new.name);

END;

/


上例的触发器定义:在Employee表上插入新行触发器“example_trigger”,使用pseudo-record“:new”来引用刚插入的信息,并将其写入other_table表中。

另外一种Oracle触发器——数据库触发器,它与表触发器有所不同,它定义在全局数据库级别而不是某个表的级别。这意味着对于任何表的任何操作,该触发器都会被触发(插入、更新或删除)。当收到任何这三类(insert、update或delete)操作时,数据库触发器就会被执行,当然受影响的行数也不会是0,否则触发器将不会被调用。

下面的示例是数据库触发器的典型形式:

```sql
CREATE OR REPLACE TRIGGER example_trigger
AFTER INSERT OR UPDATE OR DELETE
ON DATABASE
BEGIN
-- Trigger code follows
...
END;
/

上例的触发器定义:当数据库收到任何insert、update或delete操作时,触发器“example_trigger ”就会被调用,执行后续的trigger code,以完成特定的操作。

总之,Oracle触发器可以帮助我们自动执行一些任务,从而简化我们的一些操作,而表触发器和数据库触发器是不同类型的触发器,应用场景也不同,SQL语句分别负责定义不同类型的触发器。


数据运维技术 » 深入理解Oracle 触发器的类型和用法(oracle触发器类型)