Oracle表在过程执行期间被锁定以进行插入,但允许更新

时间:2018-08-01 08:21:48

标签: indexing oracle11g locking database-partitioning

我们有一个对多个表中的多个记录进行操作的过程,在某些情况下,该过程需要在名为TAX的表中插入,当此插入发生时,另一个名为PAYMENT的表被锁定插入,但不用于更新。

因此,如果另一个事务试图插入PAYMENT中,则它会等到该过程完成,但是尝试更新PAYMENT的事务不会等待。

TAX表具有两个指向PAYMENT的外键,一个是可为空的,另一个是强制性的,并且TAX表上存在两个索引,一个在{{1}上}(必填项)和FK_PAY上的一项(具有必选(FK_PAY_SETTLEMENT, ID)列的可选项)。

如何防止ID表上的锁定,因为该表是高并发插入的目标。


我将提到PAYMENT表在PAYMENT的哈希表上进行分区,并且idTAX上通过引用进行分区(强制引用)。

1 个答案:

答案 0 :(得分:0)

(税表中的)外键引用阻止了对支付表的插入操作。

“付款”表中的“更新”操作在更新表中的旧数据时起作用(没有主键或任何其他键冲突)。