带您深入了解Oracle触发器
创始人
2024-07-16 13:31:02
0

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...