V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ongongethan
V2EX  ›  问与答

关于乐观锁影响行数为 0 的问题

  •  
  •   ongongethan · 2022-05-07 17:28:10 +08:00 via iPhone · 829 次点击
    这是一个创建于 691 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用乐观锁更新数据时,如果 Update 操作返回的影响行数为 0 ,其实不能区分是因为并发导致版本号已经更新,还是因为用户提交的数据并无更新导致的。

    但理论上这两种情况需要做以区分:前者返回错误提示用户“请稍后重试”,后者为了保证幂应该返回成功。

    大家遇到这种场景是如何处理的呢?
    第 1 条附言  ·  2022-05-07 18:08:52 +08:00
    问题已解决。
    即使用户数据字段无更新,版本号和更新时间也会更新的,所以上述的第二种情况的影响行数不会为 0 。🤣
    3 条回复    2022-05-07 17:40:01 +08:00
    wolfie
        1
    wolfie  
       2022-05-07 17:33:22 +08:00
    你们没有 update_at 之类的字段吗?
    wolfie
        2
    wolfie  
       2022-05-07 17:34:09 +08:00
    而且成功修改时,乐观锁版本号不会 + 1 吗?
    ongongethan
        3
    ongongethan  
    OP
       2022-05-07 17:40:01 +08:00 via iPhone
    @wolfie 确实,即使用户数据字段无更新,版本号和更新时间也会更新的。感谢提醒。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1140 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:33 · PVG 02:33 · LAX 11:33 · JFK 14:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.