go -pg - чтение ID, возвращенного после апсерта - PullRequest
3 голосов
/ 28 мая 2020

Я создал подобное upsert в go -pg:

db.Model(myModel).Returning("id").
OnConflict("(fieldA) DO UPDATE set fieldB=EXCLUDED.fieldB").Insert()

, и теперь я хотел бы прочитать возвращенный идентификатор. Как мне это сделать? Все примеры, которые я видел, игнорируют результат, возвращаемый запросами вставки / обновления.

1 Ответ

2 голосов
/ 28 мая 2020

Судя по примеру , идентификатор будет в myModel.

myModel := &MyModel{
    FieldA: `Something something something`
}

_, err := db.Model(myModel).
    OnConflict("(fieldA) DO UPDATE").
    Set("fieldB = EXCLUDED.fieldB").
    Insert()
if err != nil {
    panic(err)
}

fmt.Println(myModel.Id)

Глядя на журнал Postgres, он делает insert into ... returning "id", чтобы получить идентификатор .

...