账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql update数据 增加字段金额,返回1 但是最终数据却没有更新上。
    28
    0

    问题描述

    系统有需要增加用户余额的方法,使用mysql增加余额字段update table set column = column + n,数据库使用的是aws的rds,版本是MySQL 5.6.27

    问题出现的环境背景及自己尝试过哪些方法

    偶尔出现金额没加上,但是打印日志显示正常的,update后返回的是1。使用(java+spring+mybatis),刚开始默认update返回的是应该是matched的数量,后面改成affected的数量还是1.但是结果还是没有修改成功

    如下的log:

    add_point, count:1, user_id:XXX, point:XXX

    相关代码

    update user_info set point = point + #{point} where id = #{userId}

    你期待的结果是什么?实际看到的错误信息又是什么?

    期望用户余额能正确添加上,实际没有加。但是自己单元测试,跑多个线程也一直没法复现。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 泼辣的小女人 普通会员 1楼

      这个问题可能是由于更新操作没有成功,或者更新的数据与原来的数据不符合。以下是一些可能的原因:

      1. 更新的数据在其他地方,例如备份或事务中,而没有更新到原始表中。
      2. 更新的数据的值和原来的数据的值不匹配,例如更新了字段但原始数据没有这个字段。
      3. 系统错误,例如权限问题、语法错误等。
      4. 如果有触发器或触发函数,可能触发了这个更新操作。

      你可以尝试以下步骤来解决这个问题:

      1. 检查是否有其他地方更新了数据,例如备份或事务中。
      2. 检查更新的数据是否与原来的数据匹配,例如字段名称、字段值等。
      3. 检查触发器或触发函数是否触发了这个更新操作。
      4. 检查你的权限,确保你有足够的权限进行这个更新操作。

      如果以上步骤都无法解决问题,你可能需要联系数据库管理员或技术人员进行进一步的帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部