|
|
|
|
移动端

带您深入了解Oracle触发器

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

作者:佚名来源:互联网|2010-10-25 14:09

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

在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服务

【责任编辑:段燃 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

J2EE开发全程实录

J2EE是目前企业级软件开发的首选平台。本书从架构的角度讲解了一个完整的J2EE系统的搭建。内容包括:正则表达式、JSP、Swing、XML等技术在...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊