一下Oracle触发器的使用方法有哪些?FBI索引详解如何将安装为Linux服务

[复制链接]
查看865 | 回复0 | 2022-12-20 05:57:35 | 显示全部楼层 |阅读模式
在Oracle数据库中,Oracle触发器是一种自动执行响应数据库变化的程序。下面就带您一同了解一下Oracle触发器的使用,供您参考学习。

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

DML事件

DDL事件

数据库事件

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

事件 触发器描述

INSERT 当向表或视图插入一行时触发触发器



UPDATE 更新表或视图中的某一行时触发触发器

DELETE 从表或视图中删除某一行时触发触发器

CREATE 当使用CREATE语句为数据库或项目增加一个对象时触发触发器

ALTER 当使用ALTER语句为更改一个数据库或项目的对象时触发触发器

DROP 当使用DROP语句删除一个数据库或项目的对象时触发触发器

START 打开数据库时触发触发器,在事件后触发

SHUTDOWN 关闭数据库时触发,事件前触发

LOGON 当一个会话建立时触发,事件前触发

LOGOFF 当关闭会话时触发,事件前触发

SERVER 服务器错误发生时触发触发器,事件后触发

创建触发器的语法如下:

<p><pre>    <ol class="dp-xml"><li class="alt"><span><span>CREATE [OR REPLACE] TRIGGER trigger_name  </span></span></li><li><span>{before|after|instead of} event  </span></li><li class="alt"><span>ON {table_or_view_name|DATABASE}  </span></li><li><span>[FOR EACH ROW[WHEN condition]]  </span></li><li class="alt"><span>trigger_body  </span></li></ol></pre></p>
只有DML触发器(INSERT、UPDATE、DELETE)语句可以使用INSTEAD OF触发器并且只有表的DML触发器可以是BEFORE或AFTER触发器。

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

<p><pre>    <ol class="dp-xml"><li class="alt"><span><span>ALTER TRIGGER trigger_name ENABLE;  </span></span></li><li><span>ALTER TRIGGER trigger_name DISABLE;  </span></li></ol></pre></p>
要禁用或启用表的所有触发器,使用ALTER TABLE语句

<p><pre>    <ol class="dp-xml"><li class="alt"><span><span>ALTER TABLE table_name DISABLE ALL TRIGGERS;  </span></span></li><li><span>ALTER TABLE table_name ENABLE ALL TRIGGERS;  </span></li></ol></pre></p>
删除触发器使用DROP TRIGGER

<p><pre>    <ol class="dp-xml"><li class="alt"><span><span>DROP TRIGGER trigger_name;  </span></span></li></ol></pre></p>
【编辑推荐】

Oracle过程和函数的区别

Oracle to_char函数的使用

oracle函数返回表的实现

带您了解Oracle FBI索引

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则