gorm中使用Updates更新非空的字段

gorm中使用Updates更新非空的字段

结构体model/Role

//通过迁移migrate生成的数据库表 -字段 限制
type Role struct {
	Id          int
	Title       string `json:"title" gorm:"type:varchar(255);"`
	Description string `json:"description" gorm:"type:varchar(255);"`
	Status      int `json:"status" gorm:"type:tinyint;"`
	CreatedAt Time
	UpdatedAt Time
	DeletedAt Time
}
	err = common.DB.Model(&role).Updates(model.Role{
		Title:requestRole.Title,
		Description:requestRole.Description,
	}).Error
	if err != nil {
		c.JSON(200, gin.H{
			"data": gin.H{
				"err": err,
			},
			"meta": gin.H{
				"msg":    "更新文章失败",
				"status": 400,
			},
		})
	}
// 警告: 当使用结构体更新的时候, GORM 只会更新那些非空的字段
// 例如下面的更新,没有东西会被更新,因为像 "", 0, false 是这些字段类型的空值
db.Model(&user).Updates(User{Name: "", Age: 0, Actived: false})
参考官方文档
上一篇:Go(五)Go不知道怎么用Gorm?


下一篇:关于gorm多表联合查询(left join)