我在 go-pg 中创建了这样的 upsert:

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

现在我想阅读返回的 ID。我该怎么做?我见过的所有示例都忽略了插入/更新查询返回的结果。

最佳答案

example 来看,ID 将在 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" 以获取 ID。

关于postgresql - go-pg - 读取更新后返回的 ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62055309/

10-17 03:10