欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
全部教程·
Go语言·
Xorm框架
[目录]
·
Xorm 更新数据
Xorm框架 教程
Xorm 引擎
Xorm 单库引擎 Xorm 引擎组 Xorm 引擎组负载策略Xorm 表结构体
Xorm 名称映射规则 Xorm 名称映射前后缀 Xorm 改变映射名称 Xorm Column属性定义 Xorm Go与字段对应表Xorm 数据库操作
Xorm 表结构操作 Xorm 同步数据库结构 Xorm 导出导入SQL Xorm 插入数据 Xorm 记录创建时间Xorm 查询数据
Xorm 查询方法 Xorm 临时开关方法 Xorm Get方法 Xorm Exist方法 Xorm Find方法 Xorm Join语句 Xorm Iterate方法 Xorm Count方法 Xorm Rows方法 Xorm Sum方法Xorm 更新数据
Xorm 更新数据 Xorm 乐观锁 Xorm 更新时间Xorm 删除数据
Xorm 删除数据Xorm SQL
Xorm 执行原生 SQLXorm 高级操作
Xorm 事务处理 Xorm 缓存处理 Xorm 事件处理 Xorm 常用工具 Xorm 常见问题
Xorm框架 教程
Xorm 引擎
Xorm 单库引擎 Xorm 引擎组 Xorm 引擎组负载策略Xorm 表结构体
Xorm 名称映射规则 Xorm 名称映射前后缀 Xorm 改变映射名称 Xorm Column属性定义 Xorm Go与字段对应表Xorm 数据库操作
Xorm 表结构操作 Xorm 同步数据库结构 Xorm 导出导入SQL Xorm 插入数据 Xorm 记录创建时间Xorm 查询数据
Xorm 查询方法 Xorm 临时开关方法 Xorm Get方法 Xorm Exist方法 Xorm Find方法 Xorm Join语句 Xorm Iterate方法 Xorm Count方法 Xorm Rows方法 Xorm Sum方法Xorm 更新数据
Xorm 更新数据 Xorm 乐观锁 Xorm 更新时间Xorm 删除数据
Xorm 删除数据Xorm SQL
Xorm 执行原生 SQLXorm 高级操作
Xorm 事务处理 Xorm 缓存处理 Xorm 事件处理 Xorm 常用工具 Xorm 常见问题Xorm 更新数据
Xorm 更新数据使用 Update 方法,Update方法的第一个参数为需要更新的内容,可以为一个结构体指针或者一个Map[string]interface{}类型。当传入的为结构体指针时,只有非空和0的field才会被作为更新的字段。当传入的为Map类型时,key为数据库Column的名字,value为要更新的内容。
Update方法将返回两个参数,第一个为 更新的记录数,需要注意的是 SQLITE 数据库返回的是根据更新条件查询的记录数而不是真正受更新的记录数。
user := new(User) user.Name = "myname" affected, err := engine.Id(id).Update(user)
这里需要注意,Update会自动从user结构体中提取非0和非nil得值作为需要更新的内容,因此,如果需要更新一个值为0,则此种方法将无法实现,因此有两种选择:
- 1.通过添加Cols函数指定需要更新结构体中的哪些值,未指定的将不更新,指定了的即使为0也会更新。
affected, err := engine.Id(id).Cols("age").Update(&user)
- 2.通过传入map[string]interface{}来进行更新,但这时需要额外指定更新到哪个表,因为通过map是无法自动检测更新哪个表的。
affected, err := engine.Table(new(User)).Id(id).Update(map[string]interface{}{"age":0})
下一章:Xorm 乐观锁
Xorm 更改数据使用乐观锁的时候,需要使用 version 标记。type User struct { Id int64 Name string Version int `xorm:"version"`}在 Ins ...
AI 中文社