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有引起混乱
的可能性....-_-!
每天前进一小步,哈哈
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值