问题标签 [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.

0 投票
1 回答
550 浏览

postgresql - 如何使用 go-pg 将多条记录插入 postgres 数据库

我通过文档使用包 pg https://pkg.go.dev/github.com/go-pg/pg/v10#example-DB.Model-BulkInsert将多条记录插入到 postgres 中。

老实说,我不喜欢这个解决方案,因为它不允许我通过一系列书籍。因为我的用例是我不知道我需要插入的书的数量。

我是否应该在这里使用事务,因为我可能必须一次插入 20 多条记录。如果是,请提供帮助,因为我没有找到很好的例子。

PS:必须使用 pg 库。

0 投票
1 回答
41 浏览

go-pg - go-pg 是否支持正则表达式更新?

go-pg是 PostgreSQL 的 Golang 库。在 SQL 中,可以通过应用正则表达式来更新整个列,例如:

问题

根据自述文件,可以执行批量更新。但是,在问题跟踪器和文档中都没有找到关于正则表达式的信息。

问题

这个库支持regexp_replace更新吗?

0 投票
1 回答
171 浏览

sql - go-pg:将数据推送到现有数组

我想使用 go-pg 向 postgres db 中的字符串数组添加一个新值。如何使用 go-pg 将新值推送到数组。

这是我的用户模型

每当用户使用用户 ID 添加新技能时,我都想更新技能数组。

来自客户端的数据包含用户 ID 和用户选择的单个技能。

go-pg我们可以通过以下方式更新列

但是我怎样才能将新数据推送到数组中呢?

0 投票
1 回答
111 浏览

go - 如何为嵌套结构运行 go-pg orm QueryContext 函数?

当我尝试QueryContext使用嵌套函数时struct,嵌套结构总是为空struct。我如何解决这个问题?

如果go-pgorm不可能做到这一点,是否有任何orm功能可以做到这一点sql

谢谢

0 投票
1 回答
126 浏览

go - 需要将sql-query转换成go-pg orm

有一个看起来像这样的查询

如果我使用它工作正常err := s.db.QueryContext(ctx, &resp, q, p1, p2)

但我并不总是有p1p2所以我希望能够很好地分开它。我试过这样的事情:

但我收到了这个错误:

错误 #42P01 对表“标签”的 FROM 子句条目的引用无效)

我做错了什么,我怎样才能做到这一点?

0 投票
1 回答
262 浏览

postgresql - 在 go-pg ORM 中将 Postgresql 列定义为串行

我想在 postgresql 数据库中创建不同的表。现在我正在使用 go-pg ORM 包。我已经使用以下代码找到了一种可能的方法:

现在让我们看看我这样定义的用户结构:

我希望 userId Column 是一个 Serial,这意味着它是唯一的,而不是 null,并且是自动递增的。有没有办法使用 ORM 或 Go 代码来做到这一点?我已经能够在 pgadmin 中手动更改它,但是还有更多带有 Id 的结构应该更改,我不想手动更改它。作为另一个问题,这是实现它的好方法吗?

0 投票
0 回答
315 浏览

postgresql - 当我只使用一个客户端时,为什么 Postgres 会抱怨“FATAL #53300 sorry, too many clients already”?

我有一个 Postgres 数据库的全局实例,它在整个代码中都在使用。

有 500 个 goroutine 使用同一个实例将一些数据插入数据库。

那么当只有一个实例(客户端)时,为什么它会失败panic: FATAL #53300 sorry, too many clients already

我的理解是,只有一个数据库实例ConnectToDB()在第一次调用时由方法创建,而在随后的调用中,它只是返回这个实例而不是创建一个新实例。

最后,当 main 结束时,该单个实例被关闭。

我无法理解它怎么可能创建太多的实例,如错误消息所示。

0 投票
1 回答
231 浏览

go - bun:go: 如何更改 bun 中的 `belongs-to` 关系映射字段

我正在研究在 PostgreSQL 中有一个执行数据库的 bun。这两个表之间存在关系。Order并且表ResPartnerOrder外键是ResPartner具有列名的表contact_partner

我尝试进行这样的查询。

但它给出了错误。

reflect: call of reflect.Value.Field on ptr Value

我认为 bun 试图找到一个像contact_partner_id. 有没有办法覆盖字段名称?

更新:我已经更新了我的问题。例如,请参阅此 repo:go-db-test

0 投票
0 回答
44 浏览

go - go: bun: bun ORM 中不区分大小写的字段名

我遇到了 go bun 的问题。我正在开发一个具有现有 PostgreSQL 数据库的项目。在一个表中有一个字段名称是isDriver,我定义这样的架构

但我收到一个错误:

ERROR #42703 column "isdriver" does not exist

我认为面包使这个领域变得更小。有没有办法解决这个问题?

注意:其他微服务也使用相同的数据库。所以我无法更改数据库字段名称。

0 投票
0 回答
57 浏览

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

运行查询后,根本不调用该函数

我真的很确定这是文档中所述的正确语法

也许我需要添加更多功能或其他任何东西?