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

标签 postgresql go beego

我正在尝试使用 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)
}

我不断得到这个; 没有可用的 LastInsertId 每当代码运行时(否则插入成功)但我遇到了崩溃。 我知道这是由于 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)
    }
}

关于postgresql - 如何使用 beego/orm 解决 'no LastInsertId available',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45807184/

相关文章:

postgresql - 获取 Postgresql 的最后插入 ID

database - 为什么 Postgres 会在空表上引发唯一约束冲突?

reactjs - 如何使用 Golang Gorilla/mux 托管并发 websocket 连接?

go - Golang解决hackerrank的“对角线差异”问题

go - 如何使用反射从 Go (golang) 中的 map 中获取 "delete"键

go - 如何在beego中添加过滤器

sql - 如果 PostgreSQL 中不存在数据,则获取值为零

c# - 使用 C# 和 Npgsql 快速插入父表和子表

go - 错误验证递增和重复

ruby-on-rails - Golang duplicate rails 设计 gem 密码加密