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