更新数据使用Update方法,Update方法的第一个参数为需要更新的内容,可以为一个结构体指针或者一个Map[string]interface{}类型。当传入的为结构体指针时,只有非空和0的field才会被作为更新的字段。当传入的为Map类型时,key为数据库Column的名字,value为要更新的内容。
Update
Update方法将返回两个参数,第一个为 更新的记录数,需要注意的是 SQLITE 数据库返回的是根据更新条件查询的记录数而不是真正受更新的记录数。
SQLITE
user := new(User) user.Name = "myname" affected, err := engine.Id(id).Update(user)
这里需要注意,Update会自动从user结构体中提取非0和非nil得值作为需要更新的内容,因此,如果需要更新一个值为0,则此种方法将无法实现,因此有两种选择:
affected, err := engine.Id(id).Cols("age").Update(&user)
affected, err := engine.Table(new(User)).Id(id).Update(map[string]interface{}{"age":0})
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8