问题标签 [postgresql-12]

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

json - Postgresql 查询嵌套 JSONB 字段中的对象

我正在使用 PostgreSQL 9.6,并且我有一个名为“ItemDbModel”的表,其中两列如下所示:

假设我放了很多记录,例如:

如何查询表:

  1. 记录“Content.Item.Name”包含“Dog”并且“Content.Item.Spec”包含“red”。
  2. “Content.Item.Name”包含“Dog”“Content.Item.Spec”包含“red”的记录。
  3. 记录“Content.Item”中的任何json 字段包含“dog”。

并按“Content.Item.Name.length”排序?

谢谢!

0 投票
2 回答
93 浏览

postgresql - 为什么当我将其投入使用时,查询的执行速度要慢 76 倍?

当我将下一个查询放入函数时,它会慢 76 倍。计划中的唯一区别是:位图索引扫描 VS 索引扫描

计划1: http ://tatiyants.com/pev/#/plans/plan_1562919134481 在此处输入图像描述

计划2: http ://tatiyants.com/pev/#/plans/plan_1562918860704 在此处输入图像描述

计划1

计划2

功能:

为什么对于函数内部的查询,过滤是在最后一次子查询扫描时完成的?

在此处输入图像描述

有没有可能做一些事情让他们平等地工作?

UPD
服务器版本是PostgreSQL 12beta2
由于 30000 个字符的限制,我在此处此处发布计划

0 投票
0 回答
416 浏览

postgresql - 在集群中升级到 PostgreSQL 12

我有两个节点 PostgreSQL 11 HA 设置如下。

node1 - hamaster.myorg.net

节点2-haslave.myorg.net

recovery.conf在node2上如下:

我想在两个系统上都将 PostgreSQL 升级到 12。我已按确切顺序确定了以下步骤:

  1. 在主节点上停止 PostgreSQL。
  2. 将 RPM(我使用的是 centos 7.8)更新到主节点上的 PostgreSQL 12 并使用升级 PostgreSQLpg_upgrade
  3. 在主节点上启动 PostgreSQL。
  4. 停止从节点上的 PostgreSQL。
  5. 将 RPM(我使用的是 centos 7.8)更新到从节点上的 PostgreSQL 12 并使用升级 PostgreSQLpg_upgrade
  6. 在从节点上,将内容复制recovery.confpostgresql.conf并删除recovery.conf. 还要standby.signal在从服务器的数据目录中创建文件。重命名trigger_filepromote_trigger_file. 删除该行standby_mode = 'on',因为 PostgreSQL 12 不需要。
  7. 在从节点上启动 PostgreSQL。

有什么遗漏吗?

0 投票
1 回答
38 浏览

sql - 在 PostgreSQL 12 上按 id(唯一)分组的一次查询中同时获取房间成员、房间所有者和管理员

我想获取房间的member列表,房间的所有者member,以防他同时不存在于其他表和管理员member中。目前我单独获取它们。

我想要的是:

  1. room_members“我的房间”列表(目前只有迈克)
  2. 我房间的主人,以防他没有将自己添加到room_members餐桌上。因为他是那个房间的主人(也就是四月)
  3. 另外,管理员成员(即 Pratha)

这应该是独一无二的。例如,如果用户将自己添加到room_members并且也owner应该只获取一次成员。

到目前为止我尝试了什么?

我也不能在这里使用 group by。我也不需要所有字段。仅room_members表字段。

见这里https ://rextester.com/XWDS42043

的预期输出room_members

  • 普拉塔:因为他是ADMIN
  • 迈克:因为他是我的房间的成员。MEMBER
  • April:因为她创造了那个房间。OWNER

room_members可以很多。我只添加了 Mike,但它可以有多个成员,包括管理员和所有者。

0 投票
2 回答
845 浏览

postgresql - 如何在 postgreapp 中为 PostgreSQL 设置密码?

我正在为 PostgreSQL 使用 postgresapp,并且没有密码我能够连接到数据库并执行操作。我很想知道密码。我也使用 Postico 作为接口。接受任何建议。

0 投票
3 回答
283 浏览

sql - PostgreSQL:是否可以确定数组中的任何元素是否与范围重叠?

假设我有一个包含int[]列和值的表:

'[1,4,1300]'::int4[]

我希望能够查询该列并获取true是否有任何元素与BETWEEN语句匹配。因此,在这种情况下,类似于:

SELECT id FROM table WHERE col && '[1000,2000]'::int4range或类似的。

该列使用gist__int_ops

0 投票
1 回答
293 浏览

python - SqlAlchemy 是否支持 SQL/JSON

我很感兴趣,sqlalchemy 1.3 是否支持这些 Postgresql-12 函数?

  • jsonb_path_exists(jsonb, jsonpath[, jsonb, bool])
  • jsonb_path_match(jsonb, jsonpath[, jsonb, bool])
  • jsonb_path_query(jsonb, jsonpath[, jsonb, bool])
  • jsonb_path_query_array(jsonb, jsonpath[, jsonb, bool])
  • jsonb_path_query_first(jsonb, jsonpath[, jsonb, bool])
0 投票
1 回答
335 浏览

authentication - 无法连接到 postgres:psql:错误:无法连接到服务器:致命:Windows 上用户的密码验证失败

我在 Windows 10 上安装了 PostgreSQL,并在 sql shell 中运行服务器(psql) (psql: error: could not connect to server: FATAL: password authentication failed for user "samantha")

出现此错误

在此处输入图像描述

0 投票
0 回答
122 浏览

postgresql - 如何在 PG12 中为按日期分区的表创建 FK

是否可以在 PG12 中为按日期范围分区的表创建 FK?

想象一下,我有一张大桌子user_sessionevent一张带有 FK 的桌子:

第一个想法是创建这样的新模式:

但它失败并出现错误: Detail: PRIMARY KEY constraint on table "user_session" lacks column "created_at" which is part of the partition key.

好的,让我们用两列进行PK:

但是,现在我无法创建表event[42830] ERROR: there is no unique constraint matching given keys for referenced table "user_session"。我也无法手动创建唯一约束。


在大多数 Postgres 文章中,分区表上都有没有 PK 的代码:

但是,现在我无法创建event表: [42830] ERROR: there is no unique constraint matching given keys for referenced table "user_session"

这样做的正确方法是什么?

0 投票
1 回答
3401 浏览

sql - 具有由外键引用的另一个表的值的 PostgreSQL 计算列

我目前正在做一个简单的虚拟项目,以刷新我对 SQL 的了解并学习一些新东西:)

我有一个Article包含列的表:

我还有一张桌子Storage

Storage表将 引用aID为外键,计数列表示存储了多少文章。

现在我想在value我的Storage表中添加一列。此栏应按 计算Article.price * Storage.count

我在网上搜索后发现你可以有这样的计算列

但是我还没有找到一个如何使用另一个表中的列的示例。

为了在计算中使用引用的 aID 中的价格,我必须做什么?