首页 > 解决方案 > 更新插入属性包括 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发送数据时更新数据?

标签: mysqlgogo-gorm

解决方案


FirstOrCreate()Updates()当数据存在时调用给定IDUpdates()操作将执行模型的BeforeUpdate,AfterUpdate方法,更新其UpdatedAt时间戳,在更新时保存其关联,如果您不想调用它们,您可以在数据不存在时使用UpdateColumn,UpdateColumns单独操作。Create

Ref: Gorm 官方更新文档


推荐阅读