问题标签 [postgresql-10]

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

postgresql - 如何在 PostgreSQL 函数中使用 COMMIT 和 ROLLBACK

我正在使用三个插入语句,如果第三个语句有错误,我想回滚第一个和第二个。如果没有办法做到这一点,请告诉我在 PostgresqQL 中处理此问题的不同方法。

如果我使用COMMITor ROLLBACK,我会得到一个错误。

上面的代码不起作用;COMMIT并且ROLLBACK不受 PostgreSQL 函数支持。

0 投票
0 回答
838 浏览

postgresql - 服务器在编译 plpytghon3u 函数时在 postgresql 中意外关闭了连接

在 psql 中定义 PL/Python 函数时,出现错误:

功能:

PostgreSQL 日志:

0 投票
1 回答
306 浏览

javascript - 在 Sequelize 中获取具有两个关联的模型实例

我正在使用 Sequelize,并且不完全确定如何获取具有两个关联条件的模型的所有实例。采取以下设置,其中个人拥有许多狗并且不一定使用相同的狗窝寄养每只狗:

给定一个犬舍的实例和一个所有者的实例,我如何找到该所有者拥有并寄宿在该犬舍中的所有狗?显然,如果我只关心其中一种情况,我可以做到owner.getDogs(),但我不确定如何概括这一点。

0 投票
1 回答
875 浏览

postgresql - 需要在postgresql的不同会话中使用一张临时表

在 postgresql 函数中创建了一个临时表。然后从我的屏幕调用这个函数来保存一些业务逻辑,这个屏幕是多用户的,多个用户可以从不同的 2 个客户端机器访问它,然后想知道可以在其中使用同一个临时表。

在创建它并在其中插入记录的函数 fn_test() 中使用此脚本。如果多用户将访问此屏幕/代码,那么它将工作与否?

0 投票
3 回答
102 浏览

postgresql - 在 pl/pgsql 中使用文本会带来空的结果集

我是 pl/pgsql 的新手,正在尝试创建动态查询。我现在拥有的是用于测试的基本参数组合。当它正常工作时,我会逐渐添加更多的动态部分,以创建一个动态的、多合一的查询。

问题是这应该可以工作,但是我search_creator在 pgadmin4 中看到一个空的数据输出。这是代码

这就是我调用函数的方式select search_creator('mike');

如果有帮助,在数据库中,该person.id列是 type character(200)

如果它有帮助,当我修改函数以接受int作为输入并将WHERE部分更改为 时WHERE person.id = $1,它可以正常工作。我可以在 pgadmin 输出中看到实际结果。

我的文本变量有什么问题?是语法吗?

另外,我该怎么做WHERE person.name LIKE '%$1%'

0 投票
2 回答
27 浏览

sql - 锁定多行但只获得一行作为返回结果

我需要锁定多行,但只获取一行作为返回结果,例如锁定用户:2,4 和 7,但只获取用户的数据where id = 2

好吧,据我了解,有两种可能的方法:

1)运行两个不同的查询:

2)使用一个查询,带有 CTE 和“假”更新,例如:

那么,哪种方式更合适呢?或者可能有更好的方法?

0 投票
1 回答
1129 浏览

postgresql - 使用 CTE 和 FOR UPDATE 锁定多行

在一个会话中,我尝试锁定“users”表中的多行,并获取 user 的“status”列WHERE id = 2

在此事务运行时,我在另一个会话中运行此查询:

我希望该行WHERE id = 6应该被第一个事务锁定,但这不是真的,因为UPDATE在第二个会话中立即运行(不等待在第一个会话中结束事务)。

我有什么误解?

附言

如果在第一次交易中,而不是 CTE 使用:

然后锁按预期工作。

0 投票
0 回答
314 浏览

postgresql - CREATE DATABASE... 挂起并且未在文件系统上创建新的基本文件夹

我们最近在 CentOS 7 服务器上从 postgres 9.1 升级到 postgres 10。我们从头开始安装并将数据库恢复到新安装中。

数据库恢复正常,一切似乎都正常工作,但是,当我们尝试创建新数据库时,大多数情况下它会挂起,直到我们取消它。

我在进程上运行了一个 strace,似乎没有在文件系统上创建新文件夹,并且出现了无限超时错误。

简单的数据库创建命令:

和strace:

文件夹的权限都是正确的,并且偶尔会正常工作,我们可以创建一个新的数据库。

如果我们重新启动postgres服务器,似乎我们可以正常创建数据库,但一段时间后问题又回来了。

我在这里有点不知所措。我想知道这是否与文件系统太忙而无法及时创建文件夹有关,或者 WAL 是否发生了一些事情会阻止创建文件夹。数据库服务器有时很忙,为多个数据库提供服务,我们从来没有遇到过超时或大量等待状态的问题,它只是创建给我们带来问题的数据库。

有任何想法吗?

0 投票
1 回答
1568 浏览

postgresql - PostgreSQL 10 使用枚举按列表分区

我正在尝试使用 enum 列对表进行分区,但遇到了一些奇怪的行为。

对于这段代码,这是我得到的解释输出: 在此处输入图像描述

我的问题是为什么它会这样工作,这是 postgres 中的错误还是功能?

编辑:手动添加约束可以改进查询计划,这样我就得到了我想要的(但我仍在徘徊上面解释的行为):

相同解释命令的新查询计划:

在此处输入图像描述

0 投票
1 回答
372 浏览

postgresql - 使用带有 hot_standby_feedback 的 postgres 流复制时对 master 有任何性能影响

我们使用的是 postgres 10,设置了 master 和带有流复制的热备用。我们使用standby来划分读查询的工作量。

由于清理延迟,除了存储膨胀之外,我们找不到有关 hot_standby_feedback 将如何影响 master 的信息。

它是否必须执行大量工作来决定来自备用数据库的查询是否应该延迟清理?