Oracle11g开始提供了一个触发器顺序控制的功能,对于同时触发的多个触发器,可以用FOLLOWS语句来控制先后执行顺序。

但是FOLLOWS语法有一定的限制:只能用在同类型的多个触发器上

(before、after要一样;update、insert、delete要一样;行级、语句级要一样)

否则会报错ORA-25022: cannot reference a trigger of a different type


既然同一类型才能控制,绝大部分场景是不需要分2个触发器的,直接在触发器内部对语句按序执行就可以了。

我在开发过程中也没有遇到非要使用follows的应用场景,但作为一个功能,记录一下,说不定以后会碰到。

在表T_OBJECTS上加2个before update of触发器,分别对OBJECT_NAME和LAST_DDL_TIME列的update操作进行触发。

执行一个update语句,同时修改OBJECT_NAME和LAST_DDL_TIME列

发现最终结果是TRIGGER1的操作结果,说明先执行了TRIGGER2,再执行TRIGGER1。

修改一下触发顺序,让TRIGGER2在TRIGGER1之后执行:

再重新执行刚才的update语句看下结果

果然保留下来了trigger2的数据

触发器(四、执行顺序控制)相关推荐

  1. SQL格式日志转为syslog格式:触发器中执行Shell命令

    很多企业网中都部署了日志中心,集中收集.分析和处理各种设备产生的日志. 但一些应用系统的日志是保存在数据库表中,如果需要提供syslog格式日志,除了进行代码改造外,一种快速的解决方法是使用SQL触发 ...

  2. Testng执行顺序控制

    1.class执行顺序控制-testng.xml之preserve-order preserve-order:用来控制<test>里面所有<classes>的执行顺序.< ...

  3. oracle 一个表上的多个触发器的执行顺序

    oracle 一个表上的多个触发器的执行顺序如下: before statement trigger->before row trigger->after row trigger-> ...

  4. 【Kotlin 协程】协程启动 ② ( 多协程控制 | launch 协程执行顺序控制 | Job#join() 函数 | async 协程执行顺序控制 | Deferred#await() 函数 )

    文章目录 一.launch 协程执行顺序控制 二.async 协程执行顺序控制 三.完整代码 源码地址 : https://download.csdn.net/download/han1202012/ ...

  5. mysql 触发器采坑记录(mysql 触发器采坑记录 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行。 当创建触发器(视图、存储过程、函数)时,如果没有)

    mysql 触发器采坑记录(语序有点凌乱,回头再整理) 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行. 当创建触发器(视图.存储过程.函数)时,如果没有指定创建 ...

  6. 关于SQLServer2005的学习笔记——约束、Check、触发器的执行顺序

    通常我们认为一条 Insert 就是一个事务,但这个事务是如何执行的呢?如果保障事务执行时该事务的完整性和一致性呢?抛开存储机制.索引.锁等环节,让我们看看约束. Check 和触发器在这个过程中的先 ...

  7. Pytest用例执行顺序控制

    有些场景用例是需要指定顺序执行的,或者直接跳过,或者根据条件跳过 一.默认顺序 二.指定顺序 三不执行 四.条件不执行 一.默认顺序:ASCII码的顺序自动排序 二.order控制 @pytest.m ...

  8. oracle 触发器执行ddl,在Oracle的触发器中执行DDL语句

    触发器无需commit 也不能写commit 触发器和触发它的DML是同一个事务 DML提交了,触发器的操作也提交了,要不就一起回滚了 当然,如果你一定要在触发器里写COMMIT 那就用自治事务 相当 ...

  9. Linux下命令执行顺序控制与管道

    一.命令执行顺序的控制 顺序执行多条命令 通常情况下,每次只能在终端输入一条命令,执行完成后,再输入第二条命令,然后再按回车执行.要想一次性输入完执行,可以使用简单的顺序执行";" ...

最新文章

  1. 取代java_如何评价 Kotlin?未来是否会取代 Java?
  2. 浅谈Delphi过程与函数02 - 零基础入门学习Delphi21
  3. C++下关于XML开源库的使用
  4. VS2008中设置字体大小和添加显示行号
  5. java泛型循环break continue_循环结构练习(示例代码)
  6. Debian update apache error AH00111: Config vairable ${APACHE_RUN_DIR} is not defined
  7. React+Redux仿Web追书神器
  8. 数据结构学习笔记(六)链表算法题
  9. mysql 可以承受多少人_多少人曾羡慕“双 11”时的爆单 可知谁在承受库存积压的风险...
  10. 《21天学通HTML+CSS+JavaScript Web开发(第7版)》——1.4 统一资源定位符
  11. Security+ 学习笔记36 嵌入式系统安全
  12. KVM虚拟化实践-老男孩架构师课程教案笔记分享
  13. 如何用matlab做参数估计,参数估计的MATLAB实现
  14. 关于GX WORKS2中M8002、M8012、M8013无法使用的问题
  15. kaldi mobvoihotwords 唤醒词识别教程
  16. 利用Eclipse-Python简单爬取京东商城书籍信息进行可视化
  17. Android 输入法框架 (2)- 输入法显示和隐藏
  18. Finance_finacial_engineering_02
  19. java存根_java – Mockito在测试方法之外的存根
  20. empty() 是 (boolean) var 的反义词 is_null() 是 is_set() 的反义词!

热门文章

  1. netty-对象池实现Recycler用法测试
  2. 2020南京航空航天大学计算机科学与技术学院软件工程复试/面试经验分享
  3. 多旋翼无人机组合导航系统-多源信息融合算法附Matlab代码
  4. 零基础入门无人机--无人机概述--1
  5. 无盘服务器磁盘缓存,网众无盘教程 教你挂盘设置缓存
  6. python从文件中删除某个字符,后保存该文件
  7. 联想G460笔记本触摸板驱动 For Windows 7 x64
  8. Linux命令之帮助手册
  9. 机器人常用传感器学习总结
  10. python实现图像的白平衡,破坏图像的白平衡(冷、暖)和调节图像的亮度