问题标签 [postgres-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 投票
3 回答
5664 浏览

postgresql - 获取分区表的表大小(Postgres 10+)

我每周在 Postgres上遇到这个查询,它显示了表格、它们的大小、toast 大小和索引大小(以字节为单位):

我知道 Postgres 正在为每个分区创建一个表,所以我分别为每个分区获取条目,但是有没有办法让每个表有一行,不管这个表是否分区?

0 投票
1 回答
57 浏览

sql - SQL subqueries PostgreSQL 12

I'm having a table similar to this:

first last date pos
john doe 18-03-2021
harris potter 10-06-2021
john doe 10-05-2021
harris potter 14-06-2021
jessica potter 14-06-2021
kermit foster

The use case is as follow:

  • The pos column correspond to a positive covid test
  • The date column correspond to the vaccination date

To be elligible for a covid certificate, some one must either:

  • Been tested positive and have got 1 vaccine
  • Have receive 2 vaccine

I'm trying to write a query that return me: totalDose, totalRequieredDose

For exemple:

  • If he has tested positive, the totalRequiredDose is 1 and if he has got 1 vaccine, he is elligible. As such, for Harry Potter, totalDoses=1 and totalRequieredDoses=1 and is elligible
  • If he has not been tested positive, the totalRequiredDose is 2 and if he has got 2 vaccines, he is elligible. As such, for John Doe, totalDoses=2 and totalRequieredDoses=2 and is elligible
first last totalDoses totalRequieredDoses
john doe 2 2
harris potter 1 1
jessica potter 1 2
kermit foster 0 2

As Jessica Potter have a vaccine and no pos date, she must have 2 vaccines. So the value 1/2 And Kermit foster have no pos value, he is 0/2 Etc.

I'm scratching my head to write a query (or pl/sql) that could return me such table.

Could someone give me some hints ?

0 投票
2 回答
1667 浏览

python - psycopg2.errors.ActiveSqlTransaction:CREATE TABLESPACE 不能在事务块内运行

我对 Python 很陌生,我们有一个应用程序容器和一个数据库容器。应用程序容器从 CLI 收集 DB_HOST、PORT 等值,并尝试在同一 docker 主机上运行的容器化 Postgres DB 上创建表空间。

在执行查询时,我们遇到了错误。

使用的 Python 库:

  • psycopg2
  • psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT

应用程序 Dockefile 示例


相同的 python 代码一直运行到 2021 年 6 月 16 日。 psycopg2 和 psycopg2.extensions 最近有什么变化会导致这种情况吗?

以下事情尝试过,但没有奏效。

  1. 将 python:3.7-alpine 更新为 python:alpine3.12
  2. Postgres 容器更新为 Postgres13
0 投票
2 回答
361 浏览

sql - B树索引好像没有用?

我是 Postgres 的新手,我正在尝试更多地了解索引。我使用的是 12.5 版,这是我的代码:

在这里,我创建了一百万条记录,希望看到索引的效果。

当我尝试获取查询计划时:

我得到了这个:

我期待一个并行索引扫描。

我试过了:

和:

但两者都给了我一个顺序扫描计划。

这里有没有我遗漏的细节,为什么我没有得到索引扫描?

0 投票
1 回答
46 浏览

postgresql - pg_stats_activity.datname 在一条记录上为空

我正在使用此查询来确定我的数据库的命中/读取值

我有结果,但第一列 datname 为 NULL,并且比率最差

用户:postgres

这里的 null 是什么意思?

0 投票
2 回答
54 浏览

postgresql - 如何将postgres的列日期更新为提前几天

我使用 postgres 作为我的数据库,并且我有一个包含日期列的表。此列中的当前值为 2021-04-1 17:19:08

我想更新此列的值并将日期 20(或任何其他天数)提前,因此新值将是 2021-04-20 17:19:08

我不手动执行此操作的原因是因为我有太多行要前进所以我需要一个查询,我需要自由选择未来的天数

提前致谢

0 投票
2 回答
85 浏览

postgresql - 基于 Postgres 继承的分区扫描所有分区

我想通过 Postgres 中的继承来实现分区。我通过参考 Postgres文章实现了以下步骤:-

  1. 创建了一个名为“test_table”的主表
  1. 创建了子/继承表
  1. 将“BEFORE INSERT”触发器附加到主表,用于将基于列“col3”的数据插入正确的分区表

完成所有这些步骤后,我可以将我的条目插入到正确的分区中,但是在分析 select 语句时,我发现 Postgres 正在扫描所有分区

这给出了以下输出

那么,我错过了什么吗?或者这是 Postgres 分区的工作方式?

0 投票
0 回答
57 浏览

database - Tiger Geocoder - Postgres SSL SYSCALL 错误:EOF 检测到信号 11 分段错误

我正在使用r6g.4xlarge AWS机器测试我自己的 Tiger Geocoder 并成功在postgresql 版本 12中设置了 2019年的Tiger Geocoder 数据。我设置了 pgtune以获得更好的性能并在 postgresql.conf 文件中进行了更改.

当我尝试对某些地址进行地理编码时,我可以通过纬度和经度获得解决方案,但是对于某些地址,我收到错误并且 postgresql 服务崩溃并再次重新启动,并出现错误SSL SYSCALL 错误:在 pgAdmin 中检测到 EOF。

我试图找到 postgres 日志文件,我可以看到崩溃发生的消息 信号 11 分段错误

我的 postgresql.conf 具有来自 pgttune 的以下配置,

  • 最大连接数 = 200
  • 共享缓冲区 = 32GB
  • work_mem = 41943kB
  • 维护工作内存 = 2GB
  • 有效 io_concurrency = 2
  • max_worker_processes = 16
  • max_parallel_maintenance_workers = 4
  • max_parallel_workers_per_gather = 4
  • max_parallel_workers = 16
  • wal_buffers = 16MB
  • max_wal_size = 4GB
  • min_wal_size = 1GB
  • checkpoint_completion_target = 0.9
  • random_page_cost = 4
  • 有效缓存大小 = 96GB
  • default_statistics_target = 100
0 投票
1 回答
104 浏览

postgresql - AWS Aurora Postgres 12 设置排序规则

我正在尝试将 AWS Aurora Postgres 12 上的排序规则设置为用户定义的排序规则类型。

CREATE COLLATION ndcoll (provider = icu, locale = 'und', deterministic = false);

我能够很好地创建排序规则。它最终被输入到 pg_collat​​ions 表中。

但是,当我尝试使用这个新的用户定义排序规则创建数据库时,我一直收到错误消息SQL Error [42809]: ERROR: invalid locale name: "ndcoll"

这是创建数据库语句:

create database "foo" with template 'bar' lc_collate = "ndcoll";

我知道还有一种方法可以使用自定义参数组在服务器级别设置排序规则。但是我使用 aurora-postgres 12 的参数组系列没有可用于设置排序规则的参数。创建用户定义的排序规则后,我重新启动了 Aurora 服务器,但仍然无法让数据库识别语言环境。我可能也不了解 locale 和 lc_collat​​e 。也许我从根本上存在误解。

是否有人对我如何使用用户定义的排序规则有任何见解 1)使用此用户定义的排序规则创建新数据库或 2)将服务器级别的排序规则设置为 aurora-postgres12 参数组中的非确定性排序规则家庭。

提前致谢!

0 投票
1 回答
44 浏览

postgresql - 为什么 -c 成功时 psql -f COPY FROM STDIN 会失败?

通过(内联命令)执行时使用psqlwith可以正常工作,但如果使用(脚本文件),同样的事情会失败。我创建了一个基于 Docker 的测试来演示以下内容;在 MacOS w/ zsh 和 Debian w/ bash 上测试。COPY FROM STDIN-c-f

我找不到任何相关文档说明为什么会这样,但我想这与psql's 的特殊\copy功能有关。有人可以帮助照亮我吗?

psql 命令的输出如下所示: