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

sql - 在 CIDR 上加入 Postgres 表

我有两张桌子。第一个表 ( events) 如下所示:

我有第二个表 ( networks),如下所示:

在第一个表中,ip是一个 IP 地址(例如,日志文件中的传入网络连接的 IP 地址)。在第二个表中,network表示 IP 地址范围(例如,ISP 的 IP 块)。

我想加入这些表,以便我可以networks.name检索events. 我的 SQL 如下所示:

但是,这非常慢(每返回行>1 秒)。我在 上定义了一个唯一的 BTREE 索引networks.network,但这似乎没有什么区别。两个表都包含 >10M 的记录。我(不幸的是)正在运行 Postgres 9.6.12。

有没有一种有效的方法来计算这个?在我看来,瓶颈在于 上的“包含在或等于”操作上JOIN,但目前尚不清楚如何让 Postgres 在这里使用索引。可能吗?

0 投票
1 回答
65 浏览

postgresql - 获取 json 包含特定对象的记录

我有一个带有 json 字段的 postgres 9.6 表config。我想从此表中获取 json 具有特定键值对的记录。

我的表如下

在 json 字段中,我在表单中存储了一个 json

现在,我正在查询数据库以获取 json 字段包含键值对的所有记录{ "name": "B", "state": "inactive"}

我的查询如下

但是,我收到一个错误

知道我在哪里出错了。指针将不胜感激。蒂亚!!!

0 投票
1 回答
315 浏览

postgresql - 在 Postgres 10.6 中,CASE 中不允许设置返回函数

sql不是我的强项

从 postgres 9.6 升级到 10.6,我从这个查询中得到一个错误:

错误: set returning functions are not allowed in CASE

结果我回来了(从 v 9.6 开始):

'user' 元素也可以为空。

这就是“内容”列的样子(两者之一)

任何帮助请求都停留了一段时间

0 投票
1 回答
138 浏览

sql - 删除表是否会删除其触发器和函数?

我创建了一个表score,还创建了一个函数和一个触发器。

现在,我放下了这张桌子

所以我的问题是,一旦我们删除表,触发器和函数会自动删除还是我们需要手动删除它们?

0 投票
2 回答
51 浏览

sql - SQL 按字段分组,每个分组只返回一个连接行

桌子data

我想要做的是按名称分组,然后为每个组选择日期要求最早的行之一。

对于这个数据集,我想以第 1 行和第 4 行或第 2 行和第 4 行结束。

预期结果:

或者

我有一些返回 1,2 和 4 的东西,但我不确定如何只从第一组中选择一个来获得所需的结果。我正在将分组与data表格一起加入,以便在分组后获得IDanother_field返回。

0 投票
2 回答
497 浏览

postgresql - 防止 Docker 容器在主进程死亡时退出

我正在使用带有repmgr的Postgres,我遇到的一个小问题是有时repmgr必须停止并启动Postgres服务,这只会杀死容器,我在Dokcerfile中尝试了一些在线解决方案,但似乎没有工作,我可以在 docker-compose 文件中添加一些东西来防止 docker 立即退出,我不想永远活着,但也许几分钟?

0 投票
1 回答
135 浏览

postgresql - 创建简单的删除函数 postgresql

我是 PostgreSQL 的新手,我创建了一个带有插入函数的简单表,但是当我使用删除函数时,它会删除所有插入的查询,知道会发生什么吗?如果有人问,我也在使用 PostgreSQL v9.6

0 投票
1 回答
137 浏览

postgresql - postgres logging_collector 同时发送到两个目录

在为 postgres 服务器测试日志的过程中,我们发现日志同时被发送到两个不同的目录。

这两个地点是:

  • /var/lib/postgresql/9.6/main/pg_log/(故意的)
  • /var/log/postgresql/(无意)

之前更改的设置postgresql.conf

设置postgresql.conf未更改,但相关:

我知道这两个目录都是 postgres 日志记录的标准目录,但同时发送到这两个目录似乎不寻常。

我们测试了一天的日志记录,当天创建了两组日志。

0 投票
1 回答
87 浏览

sql - Postgres在数据集增加时将查询从仅索引扫描更改为位图扫描

我有两个相同的查询,但条件值不同

当我运行这两个查询时,它们都产生不同的结果

第一次查询结果

第二个

谁能解释我为什么 Postgres 进行位图扫描而不是仅索引扫描?

0 投票
1 回答
33 浏览

postgresql - 如何在 Centos 7.4 上将 postgrsql 版本从 9.6.5 升级到 9.6.14

我从备份恢复数据库有问题,因为备份是在 9.6.14 pg_restore 的版本上创建的。当我想在另一台主机(使用 9.6.5 postgres 版本)上恢复我的数据库时,我收到此错误:

备份是用Fc标志创建的,所以我必须使用 pg_restore 工具来恢复它。所以我决定在我的 centos 7 上将我的 postgres 版本升级到 9.6.14,但我不知道该怎么做。如何下载和安装 9.6.14 rpm?