如何使用 beego/orm 解决 'no LastInsertId available'

How to work around 'no LastInsertId available' using beego/orm

我正在尝试使用 https://github.com/astaxie/beego/tree/master/ormstruct 插入到 postgres 数据库中。操作要简单

import "github.com/astaxie/beego/orm"

type Product struct {
    ID string `orm:"pk"`
    ...
}

product := &Product{ID: productID}
_, err := orm.NewOrm().Insert(product)
if err != nil {
    log.Fatal(err)
}

我一直收到这个; no LastInsertId available 每当代码运行时(否则插入成功)但我崩溃了。 我知道这是由于 postgresql 的限制,因为我使用 https://www.github.com/lib/pq 驱动程序。

有没有办法使用 beego/orm 来解决这个问题?

如果崩溃是由您的 log.Fatal(err) 引起的,您可以通过检查和避免它来避免这种情况:

_, err := orm.NewOrm().Insert(product)

if err != nil {
    if err.Error() == "no LastInsertId available" {
        log.Println(err)
    } else {
        log.Fatal(err)
    }
}