回头整理

本文探讨了在SQL中如何处理多个用户同时修改同一数据的问题,重点介绍了使用SELECT FOR UPDATE来避免冲突的方法,并讨论了脏读、幻读及不可重复读等概念。

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

事务. 脏读. 幻读. 不可重复读.

DB锁定策略.并发性.

乐观锁.悲观锁.

select for update

http://www.cnblogs.com/chenwenbiao/archive/2012/06/06/2537511.html

http://www.cnblogs.com/gengyulong/archive/2011/04/07/2007586.html

 

回头整理

一个用户要update一条数据.这时候另一个用户也有修改它.这个时候如果不做控制就会有问题.比如

用户1 把100 减20,改成了80  用户2 在用户1查询到记录后(或前).更新数据前查到的数据.是100. 用户2

要做减20 改成了80.用户2在用户1提交更新后更新     实际结果就是用户1改成80之后. 用户2 把80改成80.

其实应该是减40变成60的.

如果是select for update就行了.如上图.用户1 select for update .这时候用户2update会等待这个记录的锁被释放. 用户1 selectfor update后在commit或rollback之前记录会一直锁着. commit或rollback后释放锁

 

(这两天看一个名词动态查询.好拽的词.看了才知道是什么.这也值得起个名?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值