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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    gorm使用update更新数据库(postgresql)布尔值
    55
    0

    问题描述 :

    今天早上遇到的问题,一上午了,还是没有找出来是什么问题。特来问问
    目的:使用gorm修改数据库表中的某个字段布尔值

    先上代码:

    func ChangeActive(id int) (*models.Comment, error) {
        var (
            model     *models.Comment
            pre_model models.PreComment
            err       error
        )
    
        //先将需要修改的数据查询出来
        err = common.DB.Where("id = ?", id).First(&model).Error
        if err != nil {
            return nil, err
        }
        //将布尔值取反
        model.IsActive = !model.IsActive
        //更新数据库的值
        common.DB.Model(&model).Updates(&model)
    
        if !model.IsActive {
            pre_model.Create(common.DB)
        }
    
        return model, err
    }
    此函数接收一个ID,在数据库查询出ID对应的数据,修改这条数据的active字段将它取反。最后再更新数据库。

    遇到的Bug:布尔值一直更新不过来。

    排查过程:起初我以为是代码语句哪里写错了,就使用了goland的Debug模式,发现代码并没有问题。

    接下来我就验证:将代码在更新数据表之前修改了另外一个字段(model.CompanyID = 3)查看是否修改成功。结果是修改成功,但是布尔值还是没变。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部