问题标签 [go-pg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 如何使用 go-pg 将多条记录插入 postgres 数据库
我通过文档使用包 pg https://pkg.go.dev/github.com/go-pg/pg/v10#example-DB.Model-BulkInsert将多条记录插入到 postgres 中。
老实说,我不喜欢这个解决方案,因为它不允许我通过一系列书籍。因为我的用例是我不知道我需要插入的书的数量。
我是否应该在这里使用事务,因为我可能必须一次插入 20 多条记录。如果是,请提供帮助,因为我没有找到很好的例子。
PS:必须使用 pg 库。
sql - go-pg:将数据推送到现有数组
我想使用 go-pg 向 postgres db 中的字符串数组添加一个新值。如何使用 go-pg 将新值推送到数组。
这是我的用户模型
每当用户使用用户 ID 添加新技能时,我都想更新技能数组。
来自客户端的数据包含用户 ID 和用户选择的单个技能。
在go-pg
我们可以通过以下方式更新列
但是我怎样才能将新数据推送到数组中呢?
go - 如何为嵌套结构运行 go-pg orm QueryContext 函数?
当我尝试QueryContext
使用嵌套函数时struct
,嵌套结构总是为空struct
。我如何解决这个问题?
如果go-pg
orm不可能做到这一点,是否有任何orm
功能可以做到这一点sql
?
谢谢
go - 需要将sql-query转换成go-pg orm
有一个看起来像这样的查询
如果我使用它工作正常err := s.db.QueryContext(ctx, &resp, q, p1, p2)
但我并不总是有p1
,p2
所以我希望能够很好地分开它。我试过这样的事情:
但我收到了这个错误:
错误 #42P01 对表“标签”的 FROM 子句条目的引用无效)
我做错了什么,我怎样才能做到这一点?
postgresql - 在 go-pg ORM 中将 Postgresql 列定义为串行
我想在 postgresql 数据库中创建不同的表。现在我正在使用 go-pg ORM 包。我已经使用以下代码找到了一种可能的方法:
现在让我们看看我这样定义的用户结构:
我希望 userId Column 是一个 Serial,这意味着它是唯一的,而不是 null,并且是自动递增的。有没有办法使用 ORM 或 Go 代码来做到这一点?我已经能够在 pgadmin 中手动更改它,但是还有更多带有 Id 的结构应该更改,我不想手动更改它。作为另一个问题,这是实现它的好方法吗?
postgresql - 当我只使用一个客户端时,为什么 Postgres 会抱怨“FATAL #53300 sorry, too many clients already”?
我有一个 Postgres 数据库的全局实例,它在整个代码中都在使用。
有 500 个 goroutine 使用同一个实例将一些数据插入数据库。
那么当只有一个实例(客户端)时,为什么它会失败panic: FATAL #53300 sorry, too many clients already
?
我的理解是,只有一个数据库实例ConnectToDB()
在第一次调用时由方法创建,而在随后的调用中,它只是返回这个实例而不是创建一个新实例。
最后,当 main 结束时,该单个实例被关闭。
我无法理解它怎么可能创建太多的实例,如错误消息所示。
go - bun:go: 如何更改 bun 中的 `belongs-to` 关系映射字段
我正在研究在 PostgreSQL 中有一个执行数据库的 bun。这两个表之间存在关系。Order
并且表ResPartner
的Order
外键是ResPartner
具有列名的表contact_partner
我尝试进行这样的查询。
但它给出了错误。
reflect: call of reflect.Value.Field on ptr Value
我认为 bun 试图找到一个像contact_partner_id
. 有没有办法覆盖字段名称?
更新:我已经更新了我的问题。例如,请参阅此 repo:go-db-test
go - go: bun: bun ORM 中不区分大小写的字段名
我遇到了 go bun 的问题。我正在开发一个具有现有 PostgreSQL 数据库的项目。在一个表中有一个字段名称是isDriver
,我定义这样的架构
但我收到一个错误:
ERROR #42703 column "isdriver" does not exist
我认为面包使这个领域变得更小。有没有办法解决这个问题?
注意:其他微服务也使用相同的数据库。所以我无法更改数据库字段名称。
sql - 带有指针接收器的 Golang go-pg v10 AfterQuery
我正在将我的项目对https://github.com/go-pg/pg的依赖项从 v8 更新到 v10 并遇到此问题
在 v8 中,我有像这样的 AfterQuery 函数:
func (p *PaymentMethod) AfterQuery(c context.Context, db orm.DB) error
并且它工作正常,在运行查询后调用该函数。
然后我将 go-pg 更新到 v10 并将函数更改为:
func (p *PaymentMethod) AfterQuery(c context.Context, q *pg.QueryEvent) error
运行查询后,根本不调用该函数
我真的很确定这是文档中所述的正确语法
也许我需要添加更多功能或其他任何东西?