在表上有两个触发器。当表格中的每一行都有插入或更新时,会执行一个触发器。当表中的每一行有更新时执行第二个触发器。当表中一行有更新语句时,哪个触发器首先在ORACLE 10G中执行。在oracle中是否有触发器的执行顺序?如果是这样,我该如何设置它?关于触发序列
关于触发序列
回答
在触发器将触发的是,你可以在10g中控制任意的,不是顺序。我相信,从技术上讲,它的顺序是触发器恰好被创建,但这绝对不是你想要指望的。
在11g中,您可以控制触发器的触发顺序。不过,使用一个调用两个存储过程的触发器替换两个触发器几乎总是更好。因此,而不是
CREATE TRIGGER trg_1
BEFORE UPDATE ON t
FOR EACH ROW
BEGIN
<<do thing 1>>
END;
CREATE TRIGGER trg_2
BEFORE UPDATE ON t
FOR EACH ROW
BEGIN
<<do thing 2>>
END;
,你会用什么来更好的服务像
CREATE PROCEDURE p1(<<arguments>>)
AS
BEGIN
<<do thing 1>>
END;
CREATE PROCEDURE p2(<<arguments>>)
AS
BEGIN
<<do thing 2>>
END;
CREATE TRIGGER trg
BEFORE UPDATE ON t
FOR EACH ROW
BEGIN
p1(<<list of arguments>>);
p2(<<list of arguments>>);
END;
无法触发触发的命令可以依赖于10g之前的正常语句之前,之前的行,之后的行,之后的语句顺序。在11g中,CREATE TRIGGER statement增加了一个新的FOLLOWS子句。
非常感谢信息 – Arav
对于11g之前的版本,不,订单未指定。从10g Release 2 docs:当一个以上的触发是由一个单一发射
Oracle在有计划的点火顺序每种类型的触发器:
对于启用触发器,Oracle将自动执行下列操作SQL语句。首先,触发语句级触发器,然后触发行级触发器。
Oracle针对不同类型的触发器在设定的时间点执行完整性约束检查,并确保触发器不会损害完整性约束。
Oracle为查询和约束提供了读一致视图。
甲骨文管理所述触发动作的代码中引用触发器和模式对象之间的依赖性
Oracle使用两阶段提交,如果一个触发器中的分布式数据库更新远程表。
如果给定语句存在多于一个相同类型的触发器,Oracle会触发未指定的随机顺序的多个触发器;也就是说,相同语句的相同类型的触发器不保证以任何特定顺序触发。
非常感谢信息 – Arav
在Oracle 10g中,我们不控制是在同一时刻所生成的触发器。它是随机执行的。所以我们不能说首先触发哪个触发器。为了克服这个问题,Oracle 11g引入了FOLLOWS CLAUSE
。使用这个我们可以控制执行顺序。
- 1. 关于MySQL的触发
- 2. Salesforce触发序列
- 3. 触发事件处理程序关闭SharePoint列表列更改
- 4. Oracle触发序列和lpad
- 5. Oracle序列触发器
- 6. 关于SQL Server删除触发器
- 7. 关于触发器的帮助
- 8. 关于keyup的jquery没有触发
- 9. 关于SQL触发器的问题
- 10. 关于verilog触发器延迟
- 11. 关于触发器的查询?
- 12. Salesforce中:触发相关的列表上
- 13. INSERT触发器用于更新列
- 14. 关于序列点和UB
- 15. GTM触发基于
- 16. 触发程序
- 17. Quartz调度管理:关于发挥失常触发器
- 18. Azure WebJobs队列触发器不触发
- 19. 触发序列甲骨文问题
- 20. 触发auto_increment甲骨文没有序列
- 21. 创建Oracle序列触发器
- 22. 在shell脚本中触发UNIX序列
- 23. cassandra触发器执行序列
- 24. 单点触发序列化问题
- 25. 非主键POSTGRES序列触发器
- 26. 序列和触发器,PL/SQL
- 27. JSON.NET反序列化不触发setter
- 28. VB.NET应用程序触发关闭窗体关闭事件
- 29. WSO2 API Manager从输出序列触发故障序列
- 30. Informix“序列化”Oracle数据库/序列/触发器Pro * C
非常感谢信息 – Arav
和建议 – Arav