程序上面,一般不使用 悲观锁

32 篇文章 0 订阅
23 篇文章 0 订阅
程序上面,一般不使用 悲观锁 的。
大多数情况下,是用乐观锁。
每个表后面,增加一个 最后更新人 varchar 与 最后更新时间 datetime 这2个字段。

每次检索的时候,先把表的信息检索进来, 包含 最后更新人 varchar 与 最后更新时间 datetime 这2个字段。

当在 用户输入画面那里输入数据完毕以后, 要更新数据的时候。
UPDATE  表
SET  用户输入的字段  =  用户输入的信息
    最后更新人 = 当前用户
    最后更新时间 = 数据库时间
WHERE
    主键的条件
  AND 最后更新人 =  上一次检索时候的“最后更新人”
  AND 最后更新时间 = 上一次检索时候的“最后更新时间”

然后根据执行结果返回的 “更新行数”, 来判断,本次执行成功了没有
如果 “更新行数” = 1 , 说明执行成功。
如果 “更新行数” = 0, 说明数据在此期间,已经被别人修改了。这个时候,提示用户,数据保存失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值