时间:2022.11.28
环境:Windows Goland
目的:GORM Update or Create
说明:基于GORM 2.0 当前时间点是有效的 请以官方文档为主
作者:Zhong
目录
常用的三种方法:
- FirstOrCreate + Assign
- Upsert / On Conflic
- Save
FirstOrCreate + Assign
适用于各种字段条件 可以使用 FirstOrCreate + Assign 如果不涉及并发安全可使用 比较简单
db.Where(User{Name: "non_existing"}).Assign(User{Age: 20}).FirstOrCreate(&user) // 不存在则创建
db.Where(User{Name: "jinzhu"}).Assign(User{Age: 20}).FirstOrCreate(&user) // 存在则更新 如有零值可使用map 指针类型字段也可以更新零值
Upsert / On Conflict
根据主键/唯一索引字段条件 可以使用 Upsert / On Conflict