【问题标题】:How to insert multiple records into postgres database using go-pg如何使用 go-pg 将多条记录插入 postgres 数据库
【发布时间】: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


【解决方案1】:

只需将你的书放在切片数组中,然后插入即可,go-pg 支持批量插入

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2021-02-11
  • 2016-07-14
  • 1970-01-01
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 2023-04-03
相关资源
最近更新 更多