mysql - 更新插入属性包括 updated_at
问题描述
我想使用 ORM 将一些脚本数据从旧数据库回填到新数据库,gorm
并且我想使用 upsert FirstOrCreate
,以下是使用的属性和查询:
user {
ID: someid,
Name: somename,
.
.
.
CreatedAt: time.Time,
UpdatedAt: 2020-03-24 17:57:00,
}
err = db.Where(user{ID: someid}).Assign(user).FirstOrCreate(&user)
我想在新数据库中,数据是原样(updated_at = 2020-03-24 17:57:00
)但我得到updated_at
的是time.Now()
如何在updated_at
发送数据时更新数据?
解决方案
FirstOrCreate()
Updates()
当数据存在时调用给定ID
。
Updates()
操作将执行模型的BeforeUpdate
,AfterUpdate
方法,更新其UpdatedAt
时间戳,在更新时保存其关联,如果您不想调用它们,您可以在数据不存在时使用UpdateColumn
,UpdateColumns
单独操作。Create
Ref: Gorm 官方更新文档
推荐阅读
- postgresql - 为什么我在 PL/pgSQL 中的每一个都出现错误
- r - 每日数据的运行总和,当月轮换时重置
- python-3.x - 从 libspacialindex 安装 Rtree 以在 geopandas 中使用 .clip()
- mysql - MySQL如何更新id DESC计数大于值的字段
- appian - 在 Appian 中使用 folder() 获取超过 1000 个文档
- python - python中的FFT结果与具有相同矩阵的matlab中的结果不同
- python - 我需要帮助将 Perl 的“解包”代码转换为 Python 代码
- javascript - 从画布返回 dataURL 而不使用回调
- django - 如何修复 ModuleNotFoundError
- recaptcha - 如何在页面背景中包含 reCAPTCHA v3?