【发布时间】:2017-06-04 11:57:17
【问题描述】:
阅读ORACLE中PL-SQL CREATE TRIGGER语句的documentation,我浏览了以下信息:
当触发器触发时,触发器引用的表可能是 正在经历其他用户的 SQL 语句所做的更改 交易。在触发器中运行的 SQL 语句遵循相同的规则 独立的 SQL 语句。
它基本上说,当从触发器中执行其中一个语句时,适用于两个冲突的独立 SQL 语句(同时运行)的规则不会改变。
所以我们有一些关于并发事务的“常规”规则,对于这些规则,提到了以下两个:
具体来说:
在触发器中查询看到当前读一致物化 引用表的视图以及在同一表中更改的任何数据 交易。
触发器中的更新等待现有数据锁被释放 在继续之前。
这两条规则对于非专业用户来说似乎“晦涩难懂”。
更准确地说是什么意思?
【问题讨论】:
-
问题设置公平,问题公平。但是,这不是获得答案的正确位置。该站点(堆栈溢出)是针对特定编程问题的。了解 Oracle 如何在多用户环境中处理事务(如数据锁、读取一致性视图等)的地方是 Oracle 文档,其中解释得非常清楚并带有很好的示例 - 或任何有关 Oracle 的书数据库。
标签: sql oracle plsql triggers transactions