数据库中 用户使用旧数据进行更新 如何保证更新必定失败
问题描述
假设当前有数据库表,其中一个字段为权重,现有数据行ABCD,其权重字段的值为1234;
在某一刻甲打开页面,对其进行查看;
然后乙在甲之后,对数据库进行操作,插入数据E,其权重为5,并随后调整权重为A-1 B-5 C-3 D-4 E-2;
在乙完成所有操作后,甲从前端进行编辑,调整权重为 A-1 B-3 C-2 D-4,并点击保存进行提交。
请问如何保证甲的更新失败?
个人想法
由于乙的事务已经提交完成,甲更新的时候并不存在数据库锁的问题,因此希望借版本锁进行处理,即甲更新时版本不对,则直接抛出错误,并让前端刷新页面
但是我的组长说不对,让我自己好好想想。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你是不是想复杂了,你直接在更新时判断一下修改前的值是否与数据库的值是否一致,如果不一致,说明数据被更新过,那边就进行提示.就这样不就行了
如果客户端最新请求时间戳小于数据库最新提交修改的时间戳就让它失败再刷新页面更新一下,怎么样?
如果说前端提交的数据只有修改后,那么后台层面怎么判断,甲是对照最新数据修改的还是对照着旧数据修改的?要不就是敏感数据,权限定死,或者编辑页面频繁更新一下最新数据等等把。
update where子句加上旧数据条件