请任何人解释Oracle中的锁定模式,即共享、独占和更新锁。我找到了很多关于这个的理论,并根据那个
共享锁:任何人都不能更改数据,只读用途
排他锁:只允许一个用户/连接更改数据。
Update lock :行被锁定,直到用户提交/回滚。
然后,我尝试分享来检查它是如何工作的
SQL> lock table emp in share mode;
Table(s) Locked.
SQL> update emp set sal=sal+10;
14 rows updated.然后,我发现,用户可以在共享锁定后更改数据。那么,它不同于排它锁和更新锁的原因是什么呢?
另一个问题是,更新锁和排它锁有什么不同,即使它们看起来几乎是等同的。
发布于 2017-11-20 06:29:40
为将来的访问者张贴解释,它也给出了答案。
共享锁
在我开始之前,让我先说一下有5种类型的表锁-
LOCK TABLE table IN SHARE MODE;下表很好地总结了锁和允许的锁。

由于许多用户会关注这个问题,所以我决定更进一步,并将我的学习笔记放在这里,我希望人们能从中受益:






Source of this information and also excellent reading about Oracle locks。
发布于 2013-04-11 05:36:19
文档中对此进行了很好的解释:http://docs.oracle.com/cd/E11882_01/server.112/e41084/ap_locks001.htm#SQLRF55502
在您的示例中,您将表锁定在共享模式下。这不会阻止其他会话在共享模式下锁定同一对象,但会阻止它们在独占模式下锁定该对象,因此您不能在更新(具有共享锁)时删除表(需要独占锁)。
https://stackoverflow.com/questions/15936323
复制相似问题