【问题标题】:Upsert with attribute included updated_at更新插入属性包括 updated_at
【发布时间】:2020-07-04 20:51:54
【问题描述】:

我想将一些脚本从旧数据库回填数据到新数据库,gorm 作为 ORM,我想使用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_attime.Now()

如何在发送时更新带有updated_at 的数据?

【问题讨论】:

    标签: mysql go go-gorm


    【解决方案1】:

    FirstOrCreate() 在给定ID 存在数据时调用Updates()Updates()操作会执行模型的BeforeUpdateAfterUpdate方法,更新它的UpdatedAt时间戳,更新时保存它的关联,如果你不想调用它们,你可以使用UpdateColumnUpdateColumns当数据不存在时使用单独的Create 操作。

    参考:Gorm official document about update

    【讨论】:

    • 是的,它已解决,尽管它必须使用解决方法而不是使用相同的方法,谢谢
    猜你喜欢
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多