Golang GORM MYSQL upsert с включенным атрибутом updated_at - PullRequest
0 голосов
/ 24 марта 2020

Я хочу сделать некоторые данные скрипта для обратной засыпки из старой базы данных в новую базу данных, используя 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_at это time.Now()

Как я могу сохранить данные с updated_at обновляется как я его отправлю?

1 Ответ

0 голосов
/ 24 марта 2020

FirstOrCreate() вызывает Updates(), когда существуют данные с данным ID. Операция Updates() выполнит метод модели BeforeUpdate, AfterUpdate, обновит ее UpdatedAt отметку времени, сохранит ее ассоциации при обновлении, если вы не хотите вызывать их, вы можете использовать UpdateColumn, UpdateColumns с отдельной операцией Create, когда данные не существуют.

Ссылка: Официальный документ Gorm об обновлении

...