【发布时间】:2021-04-07 07:12:05
【问题描述】:
我浏览了文档,使用包 pg https://pkg.go.dev/github.com/go-pg/pg/v10#example-DB.Model-BulkInsert 将多条记录插入到 postgres 中。
db := modelDB()
book1 := &Book{
Title: "new book 1",
}
book2 := &Book{
Title: "new book 2",
}
_, err := db.Model(book1, book2).Insert()
if err != nil {
panic(err)
}
fmt.Println(book1, book2)
老实说,我不喜欢这种解决方案,因为它不允许我传递大量书籍。因为我的用例是我不知道我需要插入多少本书。
我是否应该在这里使用事务,因为我可能必须一次插入超过 20 条记录。如果是,请提供帮助,因为我找不到这个的好例子。
PS:必须使用pg库。
【问题讨论】:
-
扩展运算符不起作用?例如,
_, err := db.Model(books...).Insert()。 -
另外,下一个例子是一组模型:pkg.go.dev/github.com/go-pg/pg/…
-
对于您的第一条评论:它似乎不接受传播
cannot use books (type []*Book) as type []interface {} in argument to dbClient.baseDB.Model将尝试第二条 -
如果它不适用于
[]*Book,它是否适用于[]Book?
标签: postgresql go go-pg