多人填报怎么防止并发

做业务样单的填报  主键是样单号 样单号是自动编号的   自动去数据库最大值+1 就是比如数据库编号为00001 新的一张填报打开都是00002  但是如果同时有两个业务员都打开了这个填报的话 怎么预防同时提交这个00002的样单呢

FineReport wd210010 发布于 2019-10-22 14:16
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
shirokoLv6资深互助
发布于2019-10-22 14:24

使用插入提交,另外可以把“自动取数据库最大值+1”的逻辑写在填报里

  • wd210010 wd210010(提问者) 按照你的这个 样单号 还是会重负 不会动态取最大值
    2019-10-22 14:42 
  • chang_chiwei chang_chiwei 回复 wd210010(提问者) 现在我也遇到这个问题,我在单元格里用sql函数取数据库里的最大值+1 并发显示0002 后台实际取了0003
    2019-10-26 21:23 
最佳回答
0
白水先生Lv3初级互助
发布于2019-10-22 14:18(编辑于 2019-10-22 14:19)

方案1:新增填报的时候不取单号或者给个临时单号,保存之后,后台逻辑生成单号,回查再显示单号。

方案2:做seq序列,点开单据的时候查一次序列,但是这个可能会造成跳号的情况。


个人建议方案1

最佳回答
0
nanxi111Lv5见习互助
发布于2019-10-22 14:35

方法一:订单编号用自增ID

方法二:每次填报,更新之前对表进行写锁。lock table write

最佳回答
0
孤陌Lv6资深互助
发布于2019-10-22 15:11

不可以用数据集的数据 直接写SQL公式取数据库 是可以的动态的 取最大值的 要写在填报属性里

  • 5关注人数
  • 877浏览人数
  • 最后回答于:2019-10-22 15:11
    请选择关闭问题的原因
    确定 取消
    返回顶部