Foxtable(狐表)用户栏目专家坐堂 → [求助]一个普遍的核心问题,出库单入库单保存后如何更新其它单据


  共有2037人关注过本帖树形打印复制链接

主题:[求助]一个普遍的核心问题,出库单入库单保存后如何更新其它单据

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 20:40:00 [显示全部帖子]

你的不准确具体是指什么?

如果是指产生库存数据丢失,那是代码逻辑有问题。否则使用事务的情况下一般不会出现这种情况。

如果是指库存数量变化和查询之间的不实时,这种情况基本很难避免。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 21:07:00 [显示全部帖子]

事务和逻辑合理就不会出错。

见过的一种做法是,在相关表增加一个标志列
操作时,开启事务,在操作前先查询并更新这个标志值,表示占用状态,如果全部为可操作并更新成功,才开始进行库存操作,这样就会产生行级写锁,保证一个产品只能有一个连接进行更新。但是不影响查询,只不过查询到的只是事务开启之前的数据。
更新完库存后把标志列置为空闲状态,然后提交事务。

这种情况需要快速处理,不能有太多费时的逻辑处理,一般都是扔到存储过程中,整个事务保持在毫秒级,才不会阻塞其它并发处理。

 回到顶部