今天看前辈写的代码,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有引起混乱
的可能性....-_-!
每天前进一小步,哈哈
分享到:
相关推荐
数据库oracle锁: for update of和for update的区别,解释得很清楚,有很多详细例子说明。
API For update open ECO
关掉myeclipse下的checking for update自动更新
forupdate 例子: ModelMember::find()->where([ModelMember::TABLE_USER.'.card'=>$card])->andWhere(['!=',ModelMember::TABLE_USER.'.status', MemberDataDao::ATTR_STATUS_DELETE])->forUpdate()->one();
sim7600固件升级流程以及常见问题解答 博客:SIM7600模块固件升级(模块自身升级),链接:https://blog.csdn.net/zsj2016o/article/details/107102723
Delphi RAD Studio XE2 update2 crack XE2 for update2 破解文件
for_update_和_for_update_nowait_的区别
我用for update锁表修改数据,结果一直在执行,原来别人锁表了,导致我无法修改数据,用它能查出锁类型和谁锁的
最近有项目需求,需要保证多台机器不拿到相同的数据,后来发现... for update经常导致数据库死锁问题,下面小编给大家介绍mysql 数据库死锁过程分析(select for update),对mysql数据库死锁问题感兴趣的朋友一起学习吧
sqlalchemy 对于行级锁有两种实现方式,with_lockmode(self, mode): 和 with_for_update(self, read=False, nowait=False, of=None),前者在sqlalchemy 0.9.0 被废弃,用后者代替。所以我们使用with_for_update ! 看...
MySQL锁类型以及查询锁表问题、解锁MySQL中select * for update锁表的范围MySQL中select * for update锁表的问题由
本文介绍在mysql中使用mysql SELECT FOR UPDATE 语句时的一些问题与解决办法
主要介绍了mysql中You can’t specify target table for update in FROM clause错误解决方法,需要的朋友可以参考下
最近在工作中遇到了一个mysql错误提示1093:You can’t specify target table for update in FROM clause,后来通过查找相关的资料解决了这个问题,现在将解决的方法分享给大家,有需要的朋友们可以参考借鉴,下面来...
今天小编就为大家分享一篇关于mysql事务select for update及数据的一致性处理讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
1093 – You can’t specify target table ‘t’ for update in FROM clause, Time: 0 前情提示: Mac OS10.14+MySQL8.0.18; centOS6.8final+MySQL5.6; 解决: 方法一:多嵌套一层。多来一层子查询 以上SQL修改...
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序...
MyBatisPlus条件构造器带条件更新update使用示例代码