问题标签 [pq]

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 回答
225 浏览

postgresql - 去模拟 postgresql 错误

正如本答案中所讨论的,我编写了用于检查唯一密钥违规的代码:

为了编写单元测试用例,我需要模拟这个错误。我已经为这样的错误编写了模拟:

但这与代码不匹配。我该如何模拟pq.Error

0 投票
1 回答
11784 浏览

postgresql - 为什么我在插入 postgres 后得到 ErrNoRows("sql: no rows in result set"),即使插入实际上成功了?

我正在使用 golang-postgres:

我在做什么:

我运行一个选择查询。如果我在选择时没有得到任何条目,我会继续插入一个。否则,更新,或者别的什么...

问题是,每次插入都返回ErrNoRows("sql: no rows in result set"),即使我可以在数据库中看到 INSERT 成功,并且添加了行。

lastInsertID也始终保持为 0,而如果我签入 DB,它有一个实际值(比如 131)

似乎代码中下面注释 2附近的错误被缓存在某处,并再次出现。

在database/sql中调试,显示它在下面的代码块中返回此错误:

但是每次,如果我签入数据库,数据总是已经插入

编辑:

0 投票
2 回答
302 浏览

go - 将返回的错误分配给下划线

我一直在阅读来自 github.com/lib/pq 的一些 Golang 代码,它提供了与 postgres 数据库交互的驱动程序。

在我遇到的代码

取消函数如下所示

据我所知,下划线没有被用作关于类型的静态断言(因此编译器不会评估任何副作用,据我所知(如本例所示))并且它不是t 第二个参数,作者可能希望将其丢弃。

总结:为什么要将取消函数的结果(错误)分配给下划线?

0 投票
1 回答
1618 浏览

postgresql - 如何使用 lib/pq 将 hstore 对象插入到 postgres

对于这张表,

如何使用lib/pq更新 my_field ?我试过跟随,

我不确定可以使用哪种其他类型。

0 投票
2 回答
3250 浏览

postgresql - 如何使用 Golang lib/pq API 将二进制数据插入 PostgreSQL BYTEA 列?

我想在 BYTEA 列中插入一些二进制数据

我将如何将 somefile.tar.gz 的内容插入到具有 BYTEA 列的表中?

  1. 一个例子会有所帮助
  2. 是否可以使用 BYTEA 的 HEX 格式(postgres 9.2)?
  3. 是否可以从/到 golang 向/从 postgres 流式传输?
0 投票
1 回答
63 浏览

postgresql - 从特定函数创建通用函数(重构)

我正在使用createUsersfunc 填充我的假数据库,仅用于测试。

我正在使用pqhttps://godoc.org/github.com/lib/pq#hdr-Bulk_imports)的批量导入功能。

此代码中的所有内容都运行良好。

需求:

我现在需要的是使其“通用”,而不仅仅是用户模型。

我想我需要类似的东西:

功能DBBulkInsert如下:

问题:

显然_, err = stmt.Exec(row[0], row[1])是完全错误的。我不明白如何DBBulkInsert用我的用户数组调用。

仍然更好:

也许我也可以删除 中的参数"users", "username", "age"DBBulkInsert(users, "users", "username", "age")但是如何?反射?

0 投票
1 回答
21 浏览

replace - 用 headertext 替换 ax

我想在 Power Query 中实现以下功能:在每个单元格中,将一个 x 替换为标题的文本:

列 1 列 2 列 3 列 4 列 5

yz
xyxx
xxz
zzyxz
xzy
xzz
xzzx

此 VBA 代码导致目标:

选项显式

Sub Replace_x()
Dim rng As Range, c As Range
Set rng = UsedRange ' 我知道 ...
For Each c In rng
If c = "x" Then c = Cells(1, c.Column).Value 'Row_1 = headers
下一个 c
结束子

你有我的解决方案吗?

谢谢和最好的问候
Guenther

0 投票
1 回答
2817 浏览

postgresql - 无效的字节序列尽管字符串是有效的 UTF8

我正在尝试为 postgres 批量导入器编写一个 txt。代码当前崩溃,因为应该插入 postgres 的字符串不是有效的 UTF8:pq: invalid byte sequence for encoding UTF8: 0x00

在我的代码中,我正在检查字符串是否为有效的 UTF8。

我错过了什么?

代码:

编辑:导致错误的行:

字节[]:[116 109 97 105 108 46 99 111 109 58 104 117 115 104 112 117 112 112 105 101 115 108 111 118 101]

线:username@hotmail.whatever:hushpuppieslove

分割线[0] + 分割线[1]:username@hotmail.whatever hushpuppieslove

0 投票
1 回答
171 浏览

database - RETURNING 必须包含至少一个值

我正在学习使用 PostgreSQL 和 GORM。麻烦来得相对较快,感觉好像我是唯一一个遇到这个问题的人。

在这里,我正在创建一个结构,对其进行实例化,并尝试将其写入数据库。但是,它返回一个错误:

尝试谷歌搜索,我发现的唯一东西是 Postgres 源代码,它可能是中文的。

源代码:

结构:

是的,必须使用 Postgres 和 GORM 来完成。数据库是全新的,空的。

0 投票
0 回答
41 浏览

go - “pq:抱歉,客户端太多” - 使用 Scan(),关闭行,但在某处出现连接泄漏

我的代码是这样设置的,每次我想进行查询时,我都会打开数据库,运行 QueryRow(),将结果扫描到变量中,然后使用 defer 关闭数据库和行。但是,尽管我相信我已经将它们全部关闭,但我遇到了连接泄漏。

我已经尝试将关闭语句从延迟中取出,在我完成使用它时关闭它们。我遵循了如何在 Go 中为行插入重用单个 Postgres DB 连接?但是尽管我相信我正在遵循答案,但仍然没有运气。

在大多数情况下,事情运作良好。但是这段代码会间隔运行,一段时间后会出现“pq:抱歉,客户端太多”错误。这就是发生的一切。