本文实例讲述了Oracle触发器用法。分享给大家供大家参考,具体如下:

一、触发器简介

触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。

因此触发器不需要人为的去调用,也不能调用。

然后,触发器的触发条件其实在你定义的时候就已经设定好了。

这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。

详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。

具体举例:

1、 在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。

2、 在一个表中定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。

二、触发器语法

触发器的语法:

其中:

触发器名:触发器对象的名称。由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。

触发时间:指明触发器何时执行,该值可取:

before:表示在数据库动作之前触发器执行;

after:表示在数据库动作之后触发器执行。

触发事件:指明哪些数据库动作会触发此触发器:

insert:数据库插入会触发此触发器;

update:数据库修改会触发此触发器;

delete:数据库删除会触发此触发器。

表 名:数据库触发器所在的表。

for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。

触发器能实现如下功能:

功能:

1、 允许/限制对表的修改

2、 自动生成派生列,比如自增字段

3、 强制数据一致性

4、 提供审计和日志记录

5、 防止无效的事务处理

6、 启用复杂的业务逻辑

举例

1)、下面的触发器在更新表tb_emp之前触发,目的是不允许在周末修改表:

2)、使用触发器实现序号自增

创建一个测试表:

创建一个序列:

复制代码 代码如下:

create sequence my_seq increment by 1 start with 1 nomaxvalue nocycle cache 20;

创建一个触发器:

向表插入数据:

查询表结果:SELECT * FROM TAB_USER;

3)、当用户对test表执行DML语句时,将相关信息记录到日志表

创建触发器:

运行结果如下:

3)、创建触发器,它将映射emp表中每个部门的总人数和总工资

显示结果如下:

4)、创建触发器,用来记录表的删除数据

5)、创建触发器,利用视图插入数据

6)、创建触发器,比较emp表中更新的工资

运行结果如下:

7)、创建触发器,将操作CREATE、DROP存储在log_info表

希望本文所述对大家Oracle数据库程序设计有所帮助。

oracle 触发器用法,Oracle触发器用法实例详解相关推荐

  1. oracle大对象实例_Oracle解析复杂json的方法实例详解

    问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此 ...

  2. oracle几种例外,Oracle例外用法实例详解

    本文实例讲述了Oracle例外用法.分享给大家供大家参考,具体如下: 一.例外分类 oracle将例外分为预定义例外.非预定义例外和自定义例外三种. 1).预定义例外用于处理常见的oracle错误. ...

  3. C# Timer用法及实例详解

    1.C# Timer用法及实例详解 http://developer.51cto.com/art/200909/149829.htm http://www.cnblogs.com/OpenCoder/ ...

  4. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  5. java 获取oracle表结构_Java导出oracle表结构实例详解

    Java导出oracle表结构实例详解 发布于 2020-7-20| 复制链接 摘记:  Java导出oracle表结构实例详解最近用到的,因为plsql是收费的,不让用,找了很多方法终于发现了这个. ...

  6. oracle out参数查询,Oracle的out参数实例详解

    Oracle的out参数实例详解 一 概念 1.一般来讲,存储过程和存储函数的区别在于存储函数可以有一个返回值:而存储过程没有返回值. 2.过程和函数都可以通过out指定一个或多个输出行.我们可以利用 ...

  7. oracle中表空间实例,oracle的表空间实例详解

    oracle 的表空间实例详解 查询表空间 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小 ...

  8. 【无标mysql触发器trigger实例详解

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 目录 什么是触发器 创建 ...

  9. mysql数据库select语句用法_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  10. python中symbols函数用法_Python基础之函数用法实例详解

    本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...

最新文章

  1. ipone11android,iphone12全系配置曝光不如买iPhone11 安卓和苹果谁更香
  2. poj_2182 线段树/树状数组
  3. mysql索引空间配置_加入空间mysql索引
  4. 解惑图数据库!你知道什么是图数据库吗?
  5. Cocos2d-x 2 0 4 小心隐藏的retain
  6. Oracle索引树的结构
  7. ctypes 使用方法与说明
  8. 在保护继承中基类的共有成员_c++中的继承
  9. 诺顿无法启动扫描,扫描引擎返回错误0x20000058错误
  10. 在数据中心里SDN技术发展现状
  11. H5清理微信缓存的方案
  12. 阿里云服务器ECS测评
  13. 忘记保护密码情况下卸载瑞星杀毒软件
  14. 在安卓系统上使用NFC技术的模拟M1卡的探索之路
  15. 正襟危坐说--操作系统(伍):进程间通信
  16. 基于FPGA的UART串口通信实验(VHDL语言实现)
  17. Android-代码设置TextView字体加粗或者不加粗
  18. 建设工程施工劳务分包合同
  19. AirPods介绍|AirPods Pro 的空间音频功能介绍和开启教程
  20. 对dpdk的rte_ring实现原理和代码分析

热门文章

  1. 51单片机 | 实现SMG12864液晶显示器操作
  2. Haskll Lesson:Huffman编码实现文本压缩
  3. VUE项目arcgis初探
  4. Python学习笔记2-搭建Python开发环境
  5. 山东大学项目实训——地图圈系统——微信小程序(17)
  6. 代码随想录训练营day49
  7. 遥感影像处理书籍推荐
  8. 智慧工地管理系统在建筑行业中的应用
  9. 盘点Java技术在生活中的10大应用!
  10. PHP汽车销售进存销管理系统,php开发最新进存销软件库存仓库管理系统网页版进销存正版套装...