ITPub博客

首页 > Linux操作系统 > Linux操作系统 > FOR UPDATE NOWAIT和 FOR UPDATE

FOR UPDATE NOWAIT和 FOR UPDATE

原创 Linux操作系统 作者:tolywang 时间:2010-08-08 22:05:59 0 删除 编辑
通常是通过select … from for update语句添加的,同时该方法也是我们用来手工锁定某些记录的主要方法。比如,当我们在查询某些记录的过程中,不希望其他用户对查询的记录进行更新操作,则可以发出这样的语句。当数据使用完毕以后,直接发出rollback命令将锁定解除。当表上添加了RS锁定以后,不允许其他事务对相同的表添加排他锁,但是允许其他的事务通过DML语句或lock命令锁定相同表里的其他数据行。

 

FOR UPDATE NOWAIT和 FOR UPDATE的区别
别的事务要对这个表进行写操作时,是等待一段时间还是马上就被数据库系统拒绝而返回.制定采用NOWAIT方式来进行检索,所以当发现数据被别的SESSION锁定中的时候,就会迅速返回ORA-00054错误,内容是资源正忙, 但指定以 NOWAIT 方式获取资源。所以在程序中我们可以采用NOWAIT方式迅速判断当前数据是否被锁定中,如果锁定中的话,就要采取相应的业务措施进行处理。
如:当先(1)SELECT * FROM TABLEA FOR UPDATE
然后再(2-1)SELECT * FROM TABLEA FOR UPDATE NOWAIT--直接返回错误;但是以(2-2)SELECT * FROM TABLEA FOR UPDATE执行会阻塞等待,直到(1)的提交或回滚掉

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-670539/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: SQL 解析的过程
请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14695746