本文主要是介绍【DB笔试面试659】在Oracle中,SELECT ... FOR UPDATE加的是什么锁?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Oracle中,SELECT ... FOR UPDATE加的是什么锁?
SELECT ... FOR UPDATE语句的语法如下:
1SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];
其中,这个OF子句在涉及到多个表时,具有较大作用。若不使用OF指定锁定的表的列,则所有表的相关行均被锁定。若在OF中指定了需修改的列,则只有与这些列相关的表的行才会被锁定。WAIT子句指定等待其他用户释放锁的秒数,防止无限期的等待。
“使用FOR UPDATE WAIT”子句的优点如下:
① 防止无限期地等待被锁定的行
② 允许应用程序中对锁的等待时间进行更多的控制
③ 对于交互式应用程序非常有用,因为这些用户不能等待不确定的时间
④ 若使用了SKIP LOCKED,则可以越过锁定的行,不会报告由wait n引发的“资源忙”异常报告
在Oracle 10g之前,SELECT ... FOR UPDATE获取的是2级TM锁,而从Oracle 10g开始,SELECT ... FOR UPDATE获取的是3级TM锁。
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
DBA宝典
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
这篇关于【DB笔试面试659】在Oracle中,SELECT ... FOR UPDATE加的是什么锁?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!