项目中涉及到oracle的并发操作,我在更新账户变动表的时候有可能其他用户也在update这个时候可能会产生并发的问题。使用oracle的for update语句,他是一个行级锁,在其进行操作的时候,当前行记录被锁。
select t.balance as balance from sys_shop_account t where t.shopid =1001 for update
1:FOR UPDATE WAIT 5
5秒后会提示ORA-30006: resource busy; acquire with WAIT timeout expired
2:FOR UPDATE NOWAIT SKIP LOCKED;
提示no rows selected
3:TABLE LOCKS
LOCK TABLE table(s) IN EXCLUSIVE MODE [NOWAIT];
同样也是在transaction结束时才会释放lock。
4:DEADLOCK
transaction a lock rowA , then transaction b lock rowB
then transaction a tries to lock rowB, and transaction b tries to lock rowA
两个transaction都相互试图去lock对方已经lock的ROW,都在等待对方释放自己的lock,这样就使死锁。
deadlock也会有600提示。
分享到:
相关推荐
数据库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事务select for update及数据的一致性处理讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
最近在工作中遇到了一个mysql错误提示1093:You can’t specify target table for update in FROM clause,后来通过查找相关的资料解决了这个问题,现在将解决的方法分享给大家,有需要的朋友们可以参考借鉴,下面来...
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修改...
MyBatisPlus条件构造器带条件更新update使用示例代码