初学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 TriggersSimple Triggers就是一般的行触发器,多用于如限制表字段的长度、校验输入的内容的正确性等操作。
2)Compound TriggersCompound Triggers由三个部分组成,分别是Before、After、Instead of,即在更新操作发生前,在更新操作发生后,和代替更新操作的操作共同组成。
二、表触发器
表触发器和行触发器异曲同工,它也是在表上执行,只是表触发器不要求有INSERT、UPDATE或DELETE操作发生,而是在执行DDL语句时对表进行修改,触发器就会被触发,可以实现不同的功能。语法如下:
```sqlCreate [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_partBegin
Executable_partEnd;
表触发器一般用于记录几方面信息,如操作者ID、操作时间及操作表等;表触发器也可以对受密码保护的表文件进行保护,使得非被许可者以操作表文件。
从上述案例中可以看出,行触发器和表触发器都是Oracle数据库必不可少的技术,它们能够有效地简化和实现大多数常见的数据库操作,灵活有效的使用它们,会大大提高工作和学习的效率。