Oracle触发器:从DML触发器到System触发器(oracle触发器类型)

Oracle触发器是一种对表上更新、插入或删除数据进行响应并执行指定操作的Oracle对象。它们可以配合约束完成执行特定任务,可以定义历史记录日志以及在表中添加实时验证,提高数据的完整性、安全性和一致性。

Oracle触发器可分为一下几类:DML触发器、System触发器、 Row触发器和Compound类型触发器等,其中DML触发器是最常使用的一种。

DML触发器

DML触发器是在数据库层执行DML指令时被触发;比如,当表中插入、更新或删除数据或执行其他某种操作时触发触发器。可以用以下语法创建DML触发器:

“`sql

CREATE OR REPLACE TRIGGER trigger_name

[BEFORE|AFTER]

[INSERT | UPDATE | DELETE]

ON table_name

[FOR EACH ROW]

[WHEN(condition)]

{

— action statement

}


System触发器:

System触发器是在DBA对数据库的系统模块执行某些操作时被触发,比如,当数据库被启动或关闭时,它就会被触发。可以用以下语法来创建一个System触发器:

```sql
CREATE OR REPLACE TRIGGER Trigger_name
[BEFORE|AFTER]
[Database|Servers]
{
-- action statement
}

Row触发器:

Row触发器是在操作某表行记录时被触发,可以让其处理每个行被执行操作前后发生的动作,语法如下:

“`sql

CREATE OR REPLACE TRIGGER Trigger_name

[BEFORE|AFTER]

[INSERT | UPDATE | DELETE]

ON table_name

[FOR EACH ROW]

[WHEN(condition)]

{

— action statement

}


Compound类型触发器:

Compound类型触发器由多个子触发器组成,可以用来完成更复杂的任务,语法如下:

```sql
CREATE OR REPLACE TRIGGER Trigger_name
[COMPOUND]
{
Trigger_1
Trigger_2
……
Trigger_n
}

总的来说,Oracle触发器可以大大提高数据完整性、安全性和一致性,也为实现自动数据库操作提供了有力的手段。Oracle触发器可以协助数据库管理员实现安全有效的数据库操作,使得数据库能够及时有效地应对可能出现的DML改变,从而减少数据库出现问题的可能性。


数据运维技术 » Oracle触发器:从DML触发器到System触发器(oracle触发器类型)