加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle中有哪些不同类型的锁

发布时间:2021-01-08 21:12:02 所属栏目:站长百科 来源:网络整理
导读:请任何人解释Oracle中的锁定模式,即共享,独占和更新锁定.我发现了很多这方面的理论 共享锁:没有人可以更改数据,只读目的 独占锁:只允许一个用户/连接更改数据. 更新锁:行被锁定,直到用户提交/回滚. 然后,我尝试共享以检查它是如何工作的 SQL lock table e

请任何人解释Oracle中的锁定模式,即共享,独占和更新锁定.我发现了很多这方面的理论

共享锁:没有人可以更改数据,只读目的

独占锁:只允许一个用户/连接更改数据.

更新锁:行被锁定,直到用户提交/回滚.

然后,我尝试共享以检查它是如何工作的

SQL> lock table emp in share mode;

Table(s) Locked.

SQL> update emp set sal=sal+10;

14 rows updated.

然后,我发现,用户可以在共享锁定后更改数据.然后,它与独占锁和更新锁不同.

另一个问题,更新锁和独占锁如何彼此不同,即使它们看起来几乎相同.

解决方法

发布未来访客的解释,它也给出了答案.

共享锁

>在开始之前,先让我说有5种类型的表锁 – 行共享,行独占,共享,共享行独占和独占.共享锁是其中之一.另请注意,有行锁,与表锁不同.按照我最后提供的链接阅读所有这些.
>在以下语句中指定的表上获取共享锁 – LOCK TABLE表IN SHARE MODE;
>此锁可防止其他事务获得“行独占”(此锁由INSERT,UPDATE和DELETE语句使用),“共享行独占”和“独占”表锁,否则一切都被允许.
>因此,这意味着共享锁将阻止其他事务在该表上执行INSERT,UPDATE和DELETE语句,但允许其他事务使用“SELECT … FOR UPDATE”语句更新行,因为对于此语句,“行共享”锁是必需的,并且在需要“共享”锁时允许.

下表是锁的一个很好的总结和允许的内容.

由于很多用户都会关注这个问题所以我决定再往前走一步并提出我的学习笔记,我希望大家会从中受益:






Source of this information and also excellent reading about Oracle locks.

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读