问题标签 [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 投票
2 回答
79 浏览

sql - 将查询参数添加到 postgres 查询时出错

当我写代码时:

一切正常。但我希望它不仅可以获取带有 的页面id=1,而且还可以是动态的。

所以我写:

但我收到一个错误:

完整代码:

0 投票
1 回答
4717 浏览

postgresql - 如何将参数传递给用 PL/pgSQL 编写的查询?

我想知道是否可以将参数传递给用 PL/pgSQL 编写的查询?

我试过这个,但它失败了pq: got 1 parameters but the statement requires 0

另一个相关的问题是我想使用事务,但是sql包提供的 API 似乎每次在 tx 中执行查询时都会连接到 db。如果可能的话,我希望所有事情都能一口气完成。例如,使用 go 你应该使用这样的事务

问题是,如果我没记错的话,调用tx.Query并两次访问 PostgreSQL 服务器。tx.Exec我想要实现的是合并sql1and sql2,将它们包装在里面BEGINEND一次执行它们。我的问题是:

  1. 你觉得有必要吗?我想如果有足够的流量,性能差异可能会很明显,但我不确定。
  2. 如果是这样,执行此合并交易的最佳方式是什么?创建一个函数并在 PL/pgSQL 中运行事务(因为我可能需要使用条件语句等)?
0 投票
2 回答
742 浏览

php - PHP pg_query 更新语句

我正在尝试在 PHP 中使用 pq_query 更新数据库表。我有以下代码:

我收到以下错误消息:

错误:“'data1 = '”处或附近的语法错误

LINE 1: UPDATE tableName SET ('data1 = 10', data2= 20'') WHERE user=

0 投票
2 回答
3027 浏览

postgresql - Golang慢扫描()多行

我在 Golang 中运行查询,从我的 Postgresql 数据库中选择多行。

我正在为我的查询使用以下导入

我已经缩小到我的循环,以便将结果扫描到我的结构中。

上面的代码运行大约需要 8 秒,虽然查询速度很快,但 rows.Next() 中的循环需要整个 8 秒才能完成。

有任何想法吗?我做错了什么,还是有更好的方法?

我的数据库配置


更新 1:

我将打印语句放在 for 循环中。下面是我更新的片段

我注意到在这个循环中,它实际上会中途暂停,并在短暂休息后继续。它看起来像这样:

稍后会在另一个行计数时再次发生,并在几百条记录后再次发生。


更新 2:

下面是我的 InfrastructureInit() 方法的片段

我不确定是什么导致了这种缓慢,但我目前在我的服务器上放置了一个快速补丁,以使用 redis 数据库并预缓存我的基础设施,将其保存为字符串。现在似乎没问题,但我现在必须同时维护 redis 和我的 postgres。

我仍然对这种奇怪的行为感到困惑,但我并不完全了解 rows.Next() 的工作方式 - 每次我调用 rows.Next() 时它都会查询数据库吗?

0 投票
1 回答
1389 浏览

postgresql - Go-Gorm 是否支持在 PostgreSQL 中为分区表插入带有自动递增 ID 的插入?

我在 PostgreSQL 中有一个表,表示为以下 Go 结构:

我配置了以上述为基表的月表分区和一个插入触发器,以使用 dateTime 值作为分区键将数据路由到当前月份的子表中。

[为简洁起见,省略了触发功能等]

当我尝试插入 AppLog 表时,Postgres 将操作路由到相应的子表,例如 AppLog_2017-05(当前月份表),但插入失败并出现以下错误:

错误:sql:结果集中没有行

当在 Postgres Shell 中运行相同的查询时,它运行良好。

有人可以帮助我了解如何在 PostgreSQL 中使用 GORM 进行插入,其中表分区是在后台配置的吗?我不确定这是否是 GORM 或 Go PostgreSQL 驱动程序或 Go Database/SQL 包的问题。或者,如果我缺少任何东西。

任何帮助将不胜感激。

0 投票
2 回答
2191 浏览

postgresql - 将自定义类型数组插入 postgres

我正在尝试插入一行,其中的列是自定义类型 ( ingredient) 的数组。我的桌子是:

使用原始 sql,我可以通过以下方式插入一行:

INSERT INTO recipes (name, ingredients) VALUES ('some_name', ARRAY[ROW('aa', 'bb', 'cc'), ROW('xx', 'yy', 'zz')]::ingredient[] );

但是我正在努力与pqlib一起做这件事。我创建了一个pq.Array界面:

但是 pg 不断抛出错误:

我返回不正确driver.Value吗?

0 投票
1 回答
1070 浏览

postgresql - MD5 散列密码:它在哪里被散列?

我正在使用 md5 哈希密码连接到本地 PostgreSQL 数据库。

它有效,但我想了解幕后发生的事情。pq在通过网络发送密码之前
是否会对密码进行哈希处理?它如何知道是将其散列还是将其保留为纯文本?服务器(在 pg_hba.conf 中)是指定如何通过连接发送密码的身份验证方法的服务器。

在发送带有密码的连接字符串之前,pq 和 psql 之间是否进行了握手?

用户是通过以下方式使用密码创建的:

并验证密码是否存储为哈希:

并且pg_hba.conf完全没有修改:

0 投票
1 回答
2989 浏览

go - 从 PostreSQL 查询整数数组总是返回 []uint8

以一个带有整数数组的简单 PostreSQL 数据库为例:

使用 pq,这些值由于某种原因被检索为 []uint8 的数组。文档说整数类型作为 int64 返回
。这也不适用于数组吗?

输出:

0 投票
3 回答
1804 浏览

postgresql - 如何使用 lib/pq 驱动程序插入 NUMERIC 字段类型?

我有一个表,其中有一个存储一个非常大的数字的字段(math.big,比 uint64 大)。我将其存储为 DECIMAL 类型:

那么,如何使用library ( ) 从Go代码中插入此字段?PQgithub.com/lib/pq

此代码不起作用:

它给了我这个错误:

0 投票
1 回答
380 浏览

postgresql - Go database/sql - 在重新连接时发出命令

我有一个用 Go 编写的小应用程序,它连接到另一台服务器上的PostgreSQL数据库,使用database/sqllib/pq. 当我启动应用程序时,它会检查并确定所有数据库表和索引都存在。作为此过程的一部分,它发出一个SET search_path TO preferredschema,public命令。然后,对于数据库访问的其余部分,我不必指定架构。

根据我从调试中确定的结果,当database/sql重新连接时(没有网络是完美的),应用程序开始失败,因为没有设置搜索路径。有没有办法指定重新连接时应该执行的命令?我已经搜索了一个可以利用的事件,但到目前为止还没有找到。

谢谢!