問題描述 :今天早上遇到的問題,一上午了,還是沒有找出來是什么問題。特來問問目的:使用gorm修改數(shù)據(jù)庫表中的某個字段的布爾值先上代碼:func ChangeActive(id int) (*models.Comment, error) { var (
model *models.Comment
pre_model models.PreComment
err error
) //先將需要修改的數(shù)據(jù)查詢出來
err = common.DB.Where("id = ?", id).First(&model).Error
if err != nil {
return nil, err
} //將布爾值取反
model.IsActive = !model.IsActive
//更新數(shù)據(jù)庫的值
common.DB.Model(&model).Updates(&model) if !model.IsActive {
pre_model.Create(common.DB)
}
return model, err
}此函數(shù)接收一個ID,在數(shù)據(jù)庫查詢出ID對應(yīng)的數(shù)據(jù),修改這條數(shù)據(jù)的active字段將它取反。最后再更新數(shù)據(jù)庫。遇到的Bug:布爾值一直更新不過來。排查過程:起初我以為是代碼語句哪里寫錯了,就使用了goland的Debug模式,發(fā)現(xiàn)代碼并沒有問題。接下來我就驗證:將代碼在更新數(shù)據(jù)表之前修改了另外一個字段(model.CompanyID = 3)查看是否修改成功。結(jié)果是修改成功,但是布爾值還是沒變。
gorm使用update更新數(shù)據(jù)庫(postgresql)布爾值?
喵喵時光機
2018-07-09 06:14:45