现有场景是这样的:AB两人同时打开单据X;此时两人都是浏览状态。然后A点编辑按钮,系统记录A锁定单据。A讲X单据某内容由 C改为D 保存,锁定状态清除。 这时候B仍然是浏览状态 B看到的内容仍然是C 然后B点编辑 保存 又将D改为C了。 请问这个问题如何解决?
有想过点击编辑按钮的时候 先刷新 再执行接下来的逻辑比如编辑什么的 但是刷新之后 整个页面都是刷新过的 根本就不会执行接下来的逻辑。求指点。
在表中增加一列LAST_UPDATE,当A释放锁的时候触发器更新LAST_UPDATE字段,同时UPDATE语句要加上WHERE LAST_UPDATE=XXX,当B再次更新的时候,由于这个XXX已经被更新或者整条记录都被删,查不出来数据了。这个时候再返回给B,一个友好的提示,比如,亲,您的麒麟臂没有别人的强大哦…………
并发问题,看你以那个User 操作为主了
参考下:http://blog.csdn.net/baimin7657/article/details/8062939
1、易用的解决方案给表添加一字段:LAST_UPDATE,即最后更新时间
2、乐观锁, "VERSION
这事情很简单,你解决不了。
在lock表之后,修改数据之前,你判断一下页面的数据和现在的数据,某些字段是否一致,如果不一致,说明有改动,一致你再做更新操作呗。
1,锁;
2,状态标记(比如时间戳等等)
在数据库中为数据新增一个字段“LastDate”作为时间戳。
每次提交编辑更新前判断一下时间戳是否改变了,如果改变了说明有人动过了,无法提交。