带您深入了解Oracle触发器

数据库 Oracle
能够触发触发器事件的事件包括三种,其中DML事件触发器可以是语句或行级触发器。下文对Oracle触发器作了详细的介绍,希望对您能有所帮助。

在Oracle数据库中,Oracle触发器是一种自动执行响应数据库变化的程序。下面就带您一同了解一下Oracle触发器的使用,供您参考学习。

我们可以设置为在触发器事件之前或之后触发或执行。能够触发触发器事件的事件包括下面几种:

DML事件
DDL事件
数据库事件

DML事件触发器可以是语句或行级触发器。DML语句触发器在触发语句之前或之后触发DML行级触发器在语句影响的行变化之前或之后触发。用户可以给单一事件和类型定义多个触发器,但没有任何方法可以增强多触发器触发的命令。下表列出了用户可以利用的触发器事件:

事件 触发器描述
INSERT  当向表或视图插入一行时触发触发器
UPDATE  更新表或视图中的某一行时触发触发器
DELETE 从表或视图中删除某一行时触发触发器
CREATE 当使用CREATE语句为数据库或项目增加一个对象时触发触发器
ALTER 当使用ALTER语句为更改一个数据库或项目的对象时触发触发器
DROP 当使用DROP语句删除一个数据库或项目的对象时触发触发器
START 打开数据库时触发触发器,在事件后触发
SHUTDOWN  关闭数据库时触发,事件前触发
LOGON 当一个会话建立时触发,事件前触发
LOGOFF 当关闭会话时触发,事件前触发
SERVER 服务器错误发生时触发触发器,事件后触发

创建触发器的语法如下:

  1. CREATE [OR REPLACE] TRIGGER trigger_name  
  2. {before|after|instead of} event  
  3. ON {table_or_view_name|DATABASE}  
  4. [FOR EACH ROW[WHEN condition]]  
  5. trigger_body  

只有DML触发器(INSERT、UPDATE、DELETE)语句可以使用INSTEAD OF触发器并且只有表的DML触发器可以是BEFORE或AFTER触发器。

象约束一样触发器可以被设置为禁用或启用来关闭或打开他们的执行体(EXECUTE),将触发器设置为禁用或启用使用ALTER TRIGGER语句:

  1. ALTER TRIGGER trigger_name ENABLE;  
  2. ALTER TRIGGER trigger_name DISABLE;  

要禁用或启用表的所有触发器,使用ALTER TABLE语句

  1. ALTER TABLE table_name DISABLE ALL TRIGGERS;  
  2. ALTER TABLE table_name ENABLE ALL TRIGGERS;  

删除触发器使用DROP TRIGGER

  1. DROP TRIGGER trigger_name;  


 

 

 

【编辑推荐】

Oracle过程和函数的区别

Oracle to_char函数的使用

oracle函数返回表的实现

带您了解Oracle FBI索引

详解如何将Oracle安装为Linux服务

责任编辑:段燃 来源: 互联网
相关推荐

2010-10-29 10:04:27

2010-10-29 14:57:12

Oracle归档模式

2010-10-26 11:28:33

ORACLE运行方式

2010-10-27 15:58:01

Oracle临时表

2010-10-28 10:19:29

oracle权限管理

2010-11-19 15:53:28

oracle管理表空间

2010-11-16 14:43:25

Oracle SQL计

2010-10-22 11:10:43

SQL Server触

2010-11-08 11:49:24

SQL Server管

2010-11-10 13:37:01

SQL Server触

2010-10-25 16:29:45

Oracle随机数产生

2010-10-12 15:30:04

MySQL权限管理

2010-11-22 11:09:00

MySQL索引类型

2010-10-15 11:27:21

Mysql临时表

2010-09-28 10:46:39

sql字段类型

2010-10-15 15:32:06

Mysql外部锁定

2010-11-11 13:39:57

SQL连接查询

2010-10-19 13:26:45

SQL Server事

2010-10-11 16:45:18

MySQL ifnul

2010-10-14 11:33:42

MySQL用户
点赞
收藏

51CTO技术栈公众号