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

postgresql - Postgresql 中的比较字符串

我的桌子:

在该表中,我存储了在某些项目中使用的软件及其版本,并通过比较它们的版本来检查它们是否更新。我需要将版本信息存储为字符串,因为某些版本包含像“1.0.1-beta”这样的字符串。

我仍然找不到比较字符串的最佳方法。我使用以下(简化)查询:

当我运行以下查询时:

但是 3.0.0 小于 26752。1.2.3a (可能)是假的,如果我使用 lower() 函数我可以解决它。select '3.0.0' > '26752'或最后一个查询怎么样?

0 投票
1 回答
73 浏览

sql - 转换为双引号类型的不一致

使用 postgres 12.2:

我已经放弃了双引号,但仍然很好奇为什么它会这样!

0 投票
2 回答
1447 浏览

sql - 了解 PostgreSQL 并行查询跨会话的工作池中剩余多少并行工作人员?

假设我的 PostgreSQL 数据库配置中有 4 个并行工作人员池。我也有 2 节课。

在 session#1 中,SQL 当前正在执行,我的规划器随机选择为此查询启动 2 个工作程序。

那么,在会话#2 中,我怎么知道我的工人池减少了 2 个?

0 投票
1 回答
102 浏览

postgresql - 在 Postgresql 12 中,主服务器数据发生故障和从服务器故障转移时会发生什么情况?

我搭建了一个 Postgresql 12 HA 系统,一台服务器是 Master(s1),另一台是 Slave(s2)。

假设 Master server (s1) 因停电而失败,Slave server (s2) 升为 Master,再次开启 Master server (s1) 会发生什么?它会成为 Master 和当前 Master 再次提升为 Slave 的 Slave Server (s2) 吗?主服务器 (s1) 是否会重新同步从服务器 (s2) 在关闭时处理的内容?

0 投票
2 回答
146 浏览

c - 如何让 Postgres 后台工作人员在收到信号时睡觉和醒来?

PostgreSQL 利用后台工作者来允许进程以并发方式工作,并且它们有一个 API 供后端/扩展开发人员控制它们。到目前为止,我已经成功地在一个演示扩展中使用了这个功能,成功地产生了一些工人。

我的情况是,我的一名工人必须等待另一名工人完成。到目前为止,我正在做的是一个空闲工作人员的无限循环,直到正在等待的工作人员完成,这可能非常低效。所以我想知道如何让空闲进程休眠,直到发送一些信号?我会寻找什么?是否有一个扩展可以做类似的事情,以便我可以用来指导?

0 投票
3 回答
48 浏览

sql - 如何在 postgresql 版本 12 中实现 LIKE 条件?

当我通过 Spring Boot 框架实现它时,这个查询显示错误,所以我在 postgresql 上检查了它,但它仍然显示错误。

错误是这样的: -

0 投票
1 回答
8629 浏览

postgresql - 在 PostgreSQL 中创建内存表?

我对内存表的理解是一个将在内存中创建的表,并且尽可能少地求助于磁盘,如果有的话。我假设我有足够的 RAM 来放置那里的桌子,或者至少是其中的大部分。我不想使用显式函数在内存中加载表(如 pg_prewarm),我只想在我发出CREATE TABLEor时默认表就在那里CREATE TABLE AS select statement,除非内存已满或除非我另有说明。我并不特别关心记录到磁盘。

7 年前,这里问了一个类似的问题PostgreSQL 相当于 MySQL 内存表?. 它已收到 2 个答案,其中一个有点晚(4 年后)。

一个答案是创建一个 RAM 磁盘并为其添加一个表空间。或者使用 UNLOGGED 表。或者等待全局临时表。但是,我没有特殊的硬件,我只有普通的 RAM - 所以我不知道该怎么做。我可以使用 UNLOGGED 功能,但据我了解,仍然涉及相当多的磁盘交互(这是我试图减少的),我不确定表是否会默认加载到内存中。此外,我看不出全局临时空间是如何相关的。我对它们的理解是,它们只是可以共享的空间中的表格。

另一个答案推荐使用内存列存储引擎。然后使用一个函数将所有内容加载到内存中。我使用这种方法遇到的问题是,所引用的引擎看起来很旧且未维护,我找不到任何其他引擎。另外,我希望我不必明确诉诸使用“加载到内存”功能,而是默认情况下一切都会发生。

我只是想知道如何在 7 年后的 Postgres 12 中获取内存表。

0 投票
1 回答
146 浏览

postgresql - 授予对所有数据库中所有表的只读权限

我在我的 PostgreSQL 中创建了名为“support”的新角色。现在我需要为这个角色授予“只读”权限,所有存在的数据库/表。此外,我需要在将来创建的每个数据库上自动授予相同的权限。

我在新数据库中尝试授予权限的下一个查询未成功(无法从新数据库表中选择):

0 投票
1 回答
626 浏览

postgresql - PostgreSQL 12 CTE 物化选项何时提供优化优势?

编辑:我已经这个问题移到了,dba.stackexchange因为我收到了该社区可以更好地解决我的问题的建议。

我一直在阅读 PostgreSQL 的新 CTE 功能——MATERIALIZED 或 NOT MATERIALIZED 关键字——它可以在某些情况下提供额外的优化机会,前提是这样做是安全的。此处对此 PostgreSQL 更新的评论说:

...用户可以通过指定 MATERIALIZED 来强制旧行为 [LESS OPTIMIZED];当查询故意使用 WITH 作为优化栅栏以防止错误选择计划时,这主要是有用的。

我一直在想,考虑到在某些情况下使用 CTE 优化(NOT MATERIALIZED 关键字)是安全的,在这种情况下,优化程度较低的“MATERIALIZED”关键字可以“防止计划选择不当”,如报价或提供更好的计划?

0 投票
1 回答
469 浏览

plpython - 将数据从 POSTGRESQL 触发器发送到 python TCP 服务器

我正在尝试监视 postgres 数据库中的表。

我想将此表上的每个操作(插入或更新或删除)发送到 python tcp 服务器。

所以我尝试按照 本教程进行操作,但没有成功。

这是我正在使用的 SQL 脚本:

我正在使用一个简单的 python TCP 服务器来接收数据并简单地打印它:

我希望在此表上获得插入的事务,但是当我执行操作时,event_entity我收到一条空消息:

我相信 TD 对象json.dumps(TD)是空的。有人可以帮忙解决这个问题吗?