行共享锁定

一般通过select for update语句隐式获得行共享锁定,在Oracle中用户也可以通过lock table in row share mode 语句显示获得行共享锁定。行共享锁定并不防止顶数据进行更改操作,但是可以防止其他绘画独占性数据表锁定。允许进行多个并发的行共享和行独占锁定,还允许进行数据表的共享或者采用共享行独占锁定。

行独占锁定

通过一条insert、update或delete语句隐式获取,或者通过一条 lock table in row exclusive mode 语句显式获取。这种锁定可以防止其他会话获取一个共享锁定、共享行独占锁定或独占锁定。

表共享锁定

通过lock table in share mode语句显式获得。这种锁定可以防止其他绘画获取行独占锁定(insert、update或delete),或者防止其他表表共享行独占锁定或表独占锁定,但它允许在表中拥有多个行共享和表共享锁定。该锁定可以让会话具有对表事务级一致性访问,因为其他会话的用户提交或者回滚该事务并释放对该表的锁定之前不能更改者张被锁定的表。

表共享行独占锁定

通过lock table in share row exclusive mode语句显式获得。这种锁定可以防止其他会话获取一个表共享、行独占或者表独占锁定,但允许其他行共享锁定。这种锁定类似于表共享锁定,只是一次只能对一张表放置一个表共享独占锁定。如何A会话拥有该锁定,则B会话可以执行 select for update操作;但如果B会话试图更新选择的行,则需要进行等待。

表独占锁定

通过lock table in exclusive mode 语句显式获得。这种锁定可以防止其他会话对该表的任何其他锁定。

作者:Jeebiz  创建时间:2020-05-29 13:31
 更新时间:2023-12-22 21:08