初学Oracle:触发器类型详解(oracle触发器类型)

现如今,大家学习Oracle,触发器是必不可少的知识点,那么究竟什么是触发器?他有哪些类型?本文就和大家一起来对Oracle中触发器(Trigger)类型进行详细介绍。

Oracle中的触发器有两种:行触发器和表触发器。

一、行触发器

行触发器一般在本表上执行,当在表的一行或多行中进行插入、更新或删除操作时,触发器就会被触发,并执行相应的指令。语法如下:

“`sql

Create [Or Replace] Trigger Triggername

{BEFORE | AFTER | INSTEAD OF}

{INSERT [OR]| UPDATE [OR] | DELETE}

[OF Col_name]

ON {Table_name | View_name}

[REFERENCING OLD AS o NEW AS n]

[FOR EACH ROW]

[WHEN (condition)]

Declarative_part

Begin

Executable_part

End;


行触发器又可以分为Simple Triggers 与 Compound Triggers:

1)Simple Triggers
Simple Triggers就是一般的行触发器,多用于如限制表字段的长度、校验输入的内容的正确性等操作。
2)Compound Triggers
Compound Triggers由三个部分组成,分别是Before、After、Instead of,即在更新操作发生前,在更新操作发生后,和代替更新操作的操作共同组成。
二、表触发器

表触发器和行触发器异曲同工,它也是在表上执行,只是表触发器不要求有INSERT、UPDATE或DELETE操作发生,而是在执行DDL语句时对表进行修改,触发器就会被触发,可以实现不同的功能。语法如下:

```sql
Create [Or Replace] Trigger Triggername
{BEFORE | AFTER}
{ALTER, DROP, GRANT, REVOKE, TRUNCATE}
ON {table_name | view_name | Schema_name}
[REFERENCING Old As o New As n]
[For Each Statement]
[WHEN Condition]
Declarative_part
Begin
Executable_part
End;

表触发器一般用于记录几方面信息,如操作者ID、操作时间及操作表等;表触发器也可以对受密码保护的表文件进行保护,使得非被许可者以操作表文件。

从上述案例中可以看出,行触发器和表触发器都是Oracle数据库必不可少的技术,它们能够有效地简化和实现大多数常见的数据库操作,灵活有效的使用它们,会大大提高工作和学习的效率。


数据运维技术 » 初学Oracle:触发器类型详解(oracle触发器类型)