for update

本文解释了Oracle数据库中SELECT FOR UPDATE语句的作用及用法。该语句用于锁定符合条件的行,阻止其他用户对其进行修改或删除,但不影响表的插入操作。文章还介绍了如何通过设置等待时间和NOWAIT选项来避免无限期等待。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看前辈写的代码,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有引起混乱
的可能性....-_-!
每天前进一小步,哈哈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值