`
zoninge
  • 浏览: 32134 次
  • 性别: Icon_minigender_1
  • 来自: 长沙->广州
社区版块
存档分类
最新评论

for update

阅读更多
今天看前辈写的代码,select语句中最后面加了for update,一时半会不知道什么意思。到网上查了下资料才明白
SELECT ~ FOR UPDATE
ORACLE数据库相关程序测试时,为修改数据或者测试排他错误时常常用到SELECT ~ FOR UPDATE .
SELECT ~ FOR UPDATE 是行锁定SQL语句.执行后符合条件的行被锁定,可防止其它用户修改或删除
这些行,但是表并不是被锁定状态,其它用户对表进行数据插入操作都不受影响.
执行SELECT ~ FOR UPDATE时如果出现冲突刚会陷入等待状态,为防止无休止等待可设置时间
或NOWAIT, 如SELECT * FROM TABLE FOR UPDATE 10 (等待10秒)
SELECT * FROM TABLE FOR UPDATE NOWAIT (不等待);
另据有关资料:在程序代码中使用SELECT ~ FOR UPDATE 后,可能由于条件分支的不同而最终没
有更新被锁定的数据行,此时使用COMMIT而不是ROLLBACK来解除锁定比较好,因为ROLLBACK有引起混乱
的可能性....-_-!
每天前进一小步,哈哈
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics