问题标签 [postgres-9.6]

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

postgresql - Postgres - 将一个元素作为数组重复 N 次

例如,元素'hi'在哪里,N在哪里3,我需要一个 PostgreSQL 片段,我可以在SELECT返回以下数组的查询中使用:

0 投票
0 回答
306 浏览

json - 为什么我不能在 Postgres 中聚合 setof jsonb?

我正在尝试将jsonb-column 转换为字符串,但是在使用后jsonb_array_elements我找不到任何可以setof jsonb对其返回有用的函数。

以。。结束:

使用 ARRAY-constructor 或array_agg给出另一个错误:

我在 -clause 中搜索结束的 jsonb-part 时发现的所有内容FROM,例如:

我想在SELECT-clause 中有这样的聚合,但我不明白,为什么这是不可能的?或者是吗?

使用 Postgres 9.6

0 投票
1 回答
1475 浏览

postgresql - 选择更新查询返回基数违规

我们在 Google 管理的云数据库中的 Postgres 9.6.10 中运行此查询:

cart是一个id作为主键的表。loyalty是一个 jsonb 列,item_version是一个在某些操作上递增的函数,但预计在更新之前会发生几次item_version更新。status是枚举类型。

在高并发更新下,我们很少会遇到以下错误:

我已经确认它$2实际上是一个整数并指向一个现有的行,因为id它是主键,所以我看不出它怎么会返回超过一行。

这是有问题SELECT FOR UPDATE的查询吗?id如果是主键,该查询如何返回多行。

0 投票
1 回答
196 浏览

sql - postgres 9.6 的合并和 case when 语句

我正在尝试回填一些数据。此表中的 A 列可能来自倍数表,我可以为其使用合并函数。如果合并返回 null,那么我需要转到另一个表,并根据该表中的值向该列插入一个硬编码值。

假设有多个列要回填,此处不显示。

我只是不确定如何为 AT1 表包含条件或案例语句。

编辑:我在询问合并语句中的案例语句。

0 投票
1 回答
1719 浏览

postgresql - Postgres encode() 函数不能将函数用作参数

我正在尝试使用 Postgresql encode() 函数并将其他一些函数作为它的参数。我得到错误,我不明白为什么。

我在 Windows 上使用 Postgres 9.6.14。

  1. 这工作正常并返回698d51a19d8a121ce581499d7b701668
  1. 这也可以正常工作并返回一些值
  1. 但这一个结合了前两个,不起作用并返回"ERROR: function encode(text, unknown) does not exist"
  1. 这也不起作用并返回相同的错误
  1. 我认为有一条规则可以防止在另一个函数中使用一个函数,但是下面的一个可以正常工作并返回与此处的第一个请求相同的值,正如预期的那样。

那么,3 号和 4 号请求以及encode()整体功能有什么问题?

0 投票
2 回答
4872 浏览

kubernetes - 气流服务尚未启动

我们正在尝试部署气流(1.9.0)版本,该版本使用 Postgres 作为其数据库,使用 Redis 来连接 Kubernetes 中的 Pod。

相同的设置在暂存环境中运行良好,在生产环境中失败,经过调查,我知道图像 9.6 的 Postgres 基本版本最近发生了变化,它会导致任何问题吗?

附件是postgress和WebServer(airflow)的日志

尝试使用不同的姿势图像,但仍然相同

网络服务器日志

0 投票
1 回答
56 浏览

sql - 是否有 Postgres 时间间隔格式化程序可以将年龄显示为 3y、4mo、2w、6d、7h、55m、24s,现在等等?

是否有 Postgres 时间间隔格式化程序将年龄显示为3y, 4mo, 2w, 6d, 7h, 55m, 24s, now and so on?类似于 Reddit 如何显示帖子/评论的年龄?

我的时间戳列的数据类型如下:

api_created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()

我可以通过以下方式获取此时间戳的年龄now()

select age(now(),api_created_at) from post;

这给出2019-09-04 10:04:19.882688+01了:

我需要这个年龄作为类似于 reddit 的更友好的字符串。是否有内置的格式化程序?还是我可以使用的自定义功能?

编辑:我需要它使它“四舍五入”/地板/天花板?就像 reddit 简单地说“3d”而不是“3d 23m 55s”。因此,与其说 1d 2h,不如说 1d。

0 投票
2 回答
90 浏览

sql - Postgres - 有没有更好的方法来防止在这种情况下在两次运行时提取间隔?

我在 postgres 中有以下函数,它们只接受 timestampz 并将记录的年龄作为类似于 Reddit 的字符串返回:

这工作得很好。我只是好奇是否有更好的方法来防止计算extract(years from age(now(), t))两次?

我是 postgres 和 sql 的新手,所以学习新东西。

0 投票
1 回答
151 浏览

sql - 为什么在 Postgres 中查询 LTREE 时字符串连接不起作用?

以下 SQL 完美运行:

但是以下给了我一个错误:

错误是:

除了串联之外,我不确定两者之间的区别。

0 投票
1 回答
1183 浏览

migration - 如何更改前一段时间应用的flyway迁移文件?

问题:我们有 2 个迁移文件,它们使用 postgres DB 中的函数创建了表。这些表是在一年前创建的,之后我们进行了许多新的迁移。根据我们的新标准,我们禁止表名中的单词。

示例:我们不允许将转发表命名为“_audit”。创建的表名为“abc_audit”和“def_audit”。

禁止“_audit”嵌入在创建表的最新函数中。我们不能只更改表名,因为 docker 会启动整个新数据库并运行所有迁移文件,并且只考虑阻止“_audit”表名的最新函数,并且它会使原始迁移失败。

我们如何解决这个问题?我们不想重新设定基线并失去历史。