亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

gorm使用update更新數據庫(postgresql)布爾值?

gorm使用update更新數據庫(postgresql)布爾值?

喵喵時光機 2018-07-09 06:14:45
問題描述 :今天早上遇到的問題,一上午了,還是沒有找出來是什么問題。特來問問目的:使用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)查看是否修改成功。結果是修改成功,但是布爾值還是沒變。
查看完整描述

1 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

  • 如果是零值,那么Updates方法就不會更新這字段,而布爾值的零值是false。

  • 辦法一: 把屬性從bool改為*bool。

  • 辦法二: 使用其他的update方法。


查看完整回答
反對 回復 2018-07-15
  • 1 回答
  • 0 關注
  • 2659 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號