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

postgresql - 是否可以使用 CHECK 约束来测试 jsonb 数组中的对象?

我有以下域:

我尝试了 ALL(), jsonb 的几种变体?'key' 和 array_agg(jsonb_array_elements(VALUE)) 但我只是想不出一种方法来完成这个测试。

0 投票
1 回答
300 浏览

postgresql - 从多维数据集分组中删除重复的 NULL

如果 GROUP BY 多维数据集、汇总或分组集查询中的所有值都为空,则结果集包含一行用于设置为空的值和一行用于设置为空的值。

避免或删除这些重复项的最佳方法是什么?

例子:

0 投票
1 回答
1746 浏览

postgresql - 无法在树莓派 3 上下载 Postgresql 9.6.1 版本(操作系统:Debian Jessie)

我特别需要这个版本以使其与 heroku app psql 版本兼容。如果版本不匹配,我无法将数据库从 heroku 应用程序拉到本地计算机。

当我执行时,

我得到的错误是:

pg_dump:服务器版本:9.6.1;pg_dump 版本:9.4.2
pg_dump:由于服务器版本不匹配而中止

但是,当我尝试在我的树莓派 3 上安装 9.6 版本时,当我执行

我得到的错误是:

E: 无法找到包 postgresql-9.6
E: 无法通过正则表达式 'postgresql-9.6' 找到任何包

0 投票
1 回答
828 浏览

python - Django 1.11 - 它必须是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。"]

我知道有这样一个问题,但它对我不起作用。当我“迁移”时,我会从控制台收到一条消息。如何处理这个错误?我希望有人一步一步地告诉我。我会很感激。我正在使用 virtualenv python 3.4、postgresql 9.6 和 powershell。在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
3153 浏览

postgresql - Postgresql INSERT ... ON CONFLICT ... WHERE 未触发

我有一张这样的桌子:

我正在尝试将数据导入表中,这样如果表中不存在file 和的组合,volume则应添加新行,否则如果存在现有行,则应更新该行,以便 lastimport为今天的日期.

但是,如果该行已经是今天的日期,我不想进行任何更新(同一行可能每天出现多次)。

我正在尝试为此使用 Postgresql 9.6 的新ON CONFLICT子句,如下所示:

但它似乎对我不起作用。初始导入工作正常,但对于更新情况,即使 WHERE 子句为真,它似乎也不会更新:

由于今天是 2017 年 5 月 8 日,我本以为该行会更新。

在这种情况下,我是否误解了 WHERE 子句的目的或用法?

0 投票
1 回答
1654 浏览

postgresql - PostgreSQL SELECT 输出参数

我正在将 MSSQL 数据库转换为 PostgreSQL,而我对 PostgreSQL 的体验处于“菜鸟”级别。我在 MSSQL 中有一个存储过程,我基本上将值分配给一组 OUT 参数。当我尝试执行以下脚本来创建函数时,我收到一个错误“错误:列“closehi”不存在”我无法弄清楚为什么我无法选择这些 OUT 参数。这是脚本:

在提出建议后,我将函数的部分更改如下:

但现在我收到一条错误消息,提示“错误:在“,”或附近出现语法错误,并且它直接指向 INTO 目标变量列表中 closehi 变量之后的逗号。

0 投票
3 回答
4503 浏览

postgresql - PostgreSQL 选择进入 OUT 变量

这是我之前提出的问题的第二次迭代。我正在创建以下功能。

当我执行创建此函数时,我收到以下消息:

我正在尝试按照 PostgreSQL 上的文档进行操作

...其中目标可以是记录变量、行变量或简单变量和记录/行字段的逗号分隔列表。

OUT 参数算作“简单变量”吗?

0 投票
1 回答
6183 浏览

postgresql - 优化 postgres 相似度查询(pg_trgm + gin index)

我定义了以下索引:

我正在执行以下查询:

auth_user表有 620 万行。

查询的速度似乎在很大程度上取决于查询可能返回的结果数量similarity

通过帮助增加相似性阈值set_limit,但通过消除部分匹配降低了结果的有用性。

有些搜索会在 200 毫秒内返回,有些则需要 10 秒左右。

我们有一个使用 Elasticsearch 的现有实现,该功能可以在 < 200 毫秒内返回任何查询,同时进行更复杂(更好)的排名。

我想知道是否有任何方法可以改进这一点以获得更一致的性能?

我的理解是 GIN 索引(倒排索引)与 Elasticsearch 使用的基本方法相同,所以我认为可以进行一些优化。

一个EXPLAIN ANALYZE EXECUTE user_search('mel', 20)节目:

服务器是在 Amazon RDS 上运行的 Postgres 9.6.1

更新

1.

发布问题后不久,我发现了以下信息:https ://www.postgresql.org/message-id/464F3C5D.2000700@enterprisedb.com

所以我尝试了

这取得了很大的进步(以前> 10s)!

对于类似的查询,1.5s 仍然比 ES 慢,所以我仍然想听听任何优化查询的建议。

2.

作为对评论的回应,并在看到这个问题(Postgresql GIN 索引比 pg_trgm 的 GIST 慢)后,我尝试了完全相同的设置,使用 GIST 索引代替 GIN 索引。

尝试与上面相同的搜索,它在 ~3.5 秒内返回,使用 default work_mem='4MB'。增加work_mem没有区别。

由此我得出结论,GIST 索引的内存效率更高(没有像 GIN 那样遇到病理情况),但是当 GIN 正常工作时比 GIN 慢。这与推荐 GIN 索引的文档中的描述一致。

3.

我仍然不明白为什么要花这么多时间在:

我不明白为什么需要此步骤或它在做什么。

Bitmap Index Scan每个username % $1子句都有下面的三个……然后将这些结果与一个BitmapOr步骤结合起来。这些部分都非常快。

但即使在我们没有用完工作内存的情况下,我们仍然在Bitmap Heap Scan.

0 投票
0 回答
427 浏览

postgresql - 索引 jsonb 数组和查询 jsonb 数组

我需要让这个查询使用索引(在 jsonb 列上products_rec_jsonb),比如"products","categoryid""id".

我想索引"products""category_id"作为 GIN 和"id"BTREE DESC(作为 bigint 数据类型)......问题是当我运行查询时它根本不使用索引。我该如何解决它?

0 投票
1 回答
14335 浏览

database - 当我们需要触发程序的返回值时?

有关触发过程的文档(https://www.postgresql.org/docs/9.6/static/plpgsql-trigger.html)说:“触发函数必须返回 NULL 或记录/行”。

例子

假设some_trigger_function()返回记录/行,我知道在此事件、此表等上调用并执行过程主体......但是该过程在哪里返回值?

问题是:我们什么时候使用那个返回值?为什么我们需要这个值?你能给出一些使用这个返回值的例子/解释吗?