问题标签 [postgresql-9.5]

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 投票
3 回答
1173 浏览

sql - 直接按块范围索引(BRIN)标识符查询 Postgres 表

我有N台客户端机器。我想用 BRIN 索引的不同分区加载每台机器。

这需要:

  • 使用预定义的分区数创建 BRIN - 等于客户端计算机的数量
  • 从在 BRIN 分区标识符上使用WHERE而不是在索引列上过滤的客户端发送查询

主要目标是在将单个表从 postgres 加载到分布式客户端机器时提高性能,保持客户端之间的行数相等 - 如果行数不除以机器数,则接近相等。

我目前可以通过维护新列来实现它,该列将我的表分成等于客户端机器数量(或row_number() over (order by datetime) % N即时使用)的桶数。这种方式在时间和内存方面效率不高,而 BRIN 索引看起来是一个不错的功能,可以加快此类用例的速度。

3 台客户端机器的最小可重现示例:

预期输出:

  • 客户 1

  • 客户 2

  • 客户 3

问题:
如何使用预定义的分区数创建 BRIN 并运行过滤分区标识符而不是过滤索引列的查询?
可选地,BRIN(或其他 pg 好东西)可以加快从单个表并行加载多个客户端的任务的任何其他方式?

0 投票
1 回答
46 浏览

postgresql - 临时更改当前时间为静态值

我需要在当前会话中手动设置 postgres 一些值,例如2016-01-25 12:13:14当前时间。

也就是说,我需要临时的,在调用时LOCALTIMESTAMP(0)返回这个静态值:2016-01-25 12:13:14而不是真正正确的日期时间。

这是可能的?如果是,如何?

0 投票
2 回答
1342 浏览

json - PostgreSQL 中的递归 JSON 生成

我在 PostgreSQL 9.5 服务器中有以下表: 表

值得注意的结构location是理论上无限递归。我需要从 root 生成一条 JSON 消息location,递归到所有子位置;每个location都有一些属性,一个inventory项目数组和一个子数组locations

如何为此创建高性能查询?我正在查看各种 PostgreSQL JSON 函数、LATERAL 关键字、CTE,并且有点困惑。我已经用非递归查询完成了 JSON 输出,但不确定如何干净地处理递归。

这是一个示例输出:

0 投票
4 回答
9146 浏览

postgresql - postgresql:错误安装和运行 postgresql-9.5

我安装了两个 postgresql,9.5 应该使用端口 5433,9.3.4 应该使用端口 5432:

我写了一个脚本来安装 postgresql-9.5 并从 9.3.4 迁移到 9.5

问题0:postgresql-9.5无法启动成功,为什么状态为在线

安装过程中的输出:

然后我做了一些测试:

以上错误是怎么回事?

顺便说一句,另一个错误是:

问题1:为什么我不能使用/usr/lib/postgresql/9.5/bin/psql来登录数据库,但是我可以通过/opt/pkgs/postgresql-9.3.4/bin/psql来做到这一点

错误是“未定义的符号:PQsslInUse”。这是什么意思?为什么我不能使用 /usr/lib/postgresql/9.5/bin/psql 登录数据库,但我可以通过 /opt/pkgs/postgresql-9.3.4/bin/psql 来登录?

谢谢

顺便说一句,我运行以下命令进行迁移:

谢谢

0 投票
1 回答
8071 浏览

postgresql - Postgres 9.5.0 中的 ON CONFLICT 语法错误

在 Postgres 文档INSERT中有一个 ON CONFLICT 使用示例:

我尝试同样的事情:

但是在“ON”处或附近得到 ERROR: syntax error。

我错过了什么?

0 投票
2 回答
4111 浏览

postgresql - 如何在 Postgres 中更新两列之一的冲突?

upsert当表中的两列之一发生冲突时,是否可以在 Postgres 9.5 中执行?基本上我有 2 列,如果任一列抛出唯一约束违规,那么我想执行更新操作。

0 投票
1 回答
3751 浏览

sql - ON CONFLICT DO UPDATE 缺少 FROM 子句

我有一个简单的表(id 和 name 列,都是唯一的),我正在导入一个制表符分隔的 CSV 文件。

我正在运行 psql 9.5,ON CONFLICT如果 ID 已经存在,我想尝试更新 name 列的新功能。

我收到此错误:

不太确定这里出了什么问题。

0 投票
2 回答
450 浏览

json - Postgres 是否允许 json[] 或 jsonb[]?

所以我一直试图以0运气在互联网上找到答案。

postgres 是否支持在单个字段中包含对象数组,例如

并将其保存到单个字段?

还有你会如何演奏单曲INSERTUPDATE

会是:UPDATE db SET value='[{ key: val }, { key: val }]'??

0 投票
1 回答
597 浏览

sql - 插入冲突的回滚触发器

我有这个:

将 postgresql 更新到 9.5 版后,我修改了函数 upsert_user 以使用新指令 ON CONFLICT:

问题是,现在,即使插入 users 表失败,也会在privileges_entities 表中插入新行。如果用户的插入导致冲突,是否可以回滚触发器?

0 投票
3 回答
1500 浏览

postgresql - 如何在 IF-THEN-ENDIF 条件下使用存储过程返回布尔值?

vip_until在一个文字游戏的 PostgreSQL 表中,我通过列或grand_until具有未来有效日期的列来跟踪付费玩家:

我写了一个简短的存储过程来检查:

然后我尝试在另一个存储过程中使用上述函数:

但我得到这个语法错误:

如何is_vip()正确使用该功能?