gorm Save函数 使用注意点

Save() 函数 — 替换 或者创建
根据where条件和传入结构体的主键进行查找
没有查找到,就会创建记录
查找到就会更新记录
如果结构体对应字段没有被赋值,在更新,或者创建时 ,就会以对应字段就会以零值更新或创建记录。

type User struct {
	Id   string `json:"id"`
	Name string `json:"name"`
	Age  string `json:"age"`
}
dao.DB.AutoMigrate(&User{})
var user User
dao.DB.First(&user)
fmt.Println(user)
user.Age = "" 设置零值
dao.DB.Save(&user)更新成功
dao.DB.First(&user)
fmt.Println(user)

	user.Id = "0"
	user.Age = "1"
	dao.DB.Debug().Where("name=?", "10").Save(&user) // where name = "10" and id = "1" set user

建议先使用查询语句查询到结果之后再对查询到的结果对象进行修改赋值,最后使用Save保存操作。

你可能感兴趣的:(个人总结,Go,开发语言,后端,go)