问题标签 [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 回答
8259 浏览

windows - 移动 pgdata 目录后,Postgres 服务不会在 Windows 中启动

我按照这些说明将 Postgres 数据目录从 C:\Users\username\Documents\dir\postgres96_data 移动到 C:\Users\username\Documents\postgres96_data。

现在 Postgres 服务将无法启动。尝试手动启动它会产生以下消息(免费翻译自 pt-br):

“本地计算机上的 postgres-x64-9.6 服务启动然后停止。如果某些服务没有被其他服务或程序使用,它们会自动停止。”

我尝试(成功)使用命令在 cmd.exe 中启动数据库

日志是:

先前的研究

关联

关联

关联

关联

0 投票
1 回答
727 浏览

sql - 每周运行当前和上一年的总计

此查询提供当年和上一年至今的价格和平方英尺的年初至今数字。这更像是当前年份和上一年的运行总计,在这种情况下,从 1 到 7 等周......(2017 年第 7 周于 2017 年 2 月 19 日结束)本年度和上一年(2016 年第 7 周于 2016 年 2 月 22 日结束)。我使用子查询的原因是因为这是我知道解决这种情况的唯一方法。当然,如果您认为执行此查询有更短、可行的替代方案,请提出建议。

Actual_Sale_Date保存一周中所有 7 天的数据,但我们在周日截止,这就是为什么 2/22/2016(周日结束 2016 年第 7 周)和 2/19/2017(周日结束 2017 年第 7 周)。

我试过"Actual_Sale_Date" = date_trunc('week', now())::date - 1这个函数只返回在过去的星期天结束的前一周数据。我看了看,interval因为dateaddpostgresql 中不存在,但无法解决。

我的查询:

样本数据:

0 投票
1 回答
6723 浏览

postgresql - PostgreSQL:使用 pgcrypto 加密列

我需要加密 PostgreSQL 9.6 数据库中的一些列。被加密的数据本质上是敏感的;但是,这些数据不是密码或其他身份验证凭据。这些数据需要解密以供用户进行统计分析和消费。

在阅读了几个问题和答案后:

...并考虑这些评论:

在此处输入图像描述

...似乎使用 pgcrypto 模块的最大问题是在同一个数据库中存储密钥。

这就引出了一个问题:

将密钥存储在不同的数据库中并通过外部数据包装器(例如 Postgresql_FDW)访问它是否符合最佳实践?

0 投票
1 回答
71 浏览

postgresql - PostgreSQL pg_dumpall 丢失模式

我有一个 postgres 数据库,我正在尝试使用 pg_dumpall 创建完整的脚本来重现我的数据库(也使用 github 来跟踪转储文件的版本)。

我的问题是,为什么 pg_dumpall 会丢失我的数据库模式?例如,我有一个名为“go1”的模式。我的 pg_dumpall 脚本应该为模式“go1”中的用户表生成一个带有“go1.users”的文件。但是转储文件只产生“用户”。它丢失了模式名称。

pg_dumpall 有没有办法保留转储文件中的模式?

0 投票
1 回答
85 浏览

sql - 确保所有值都存在于具有一个查询的表中

所以我有一个简单的芬兰和瑞典名字城镇表:

我需要检查一个特定的城镇是否存在。这很容易:

但现在我需要为多个城镇执行此操作,以确保它们存在:

有没有办法用一个查询而不是使用 Pythonfor循环来做到这一点?

0 投票
1 回答
303 浏览

sql - 从 Postgres C API 中的复合类型数组访问列

我访问这样的复合值数组:

这是它在 SQL 中的样子:

预期结果:

但这不起作用,因为GetAttributeByName()仅适用于HeapTupleHeader,遗憾的是我有Datum. 通常你可以HeapTupleHeader通过访问这样的函数属性来获得:PG_GETARG_HEAPTUPLEHEADER(0)但这并不意味着数组(或者我错了?)。

那么是否有一些函数/ makro 可以从复合类型中获取列Datum或将复合类型Datum转换为HeapTuple?我已经深入到heap_getattr(),但找不到任何有用的东西。不记得是否已经有某种函数可以以类似的方式访问复合数组,并会告诉我如何去做。

对于上下文:我有 2 个复合类型的数组,我想编写 C 函数来快速连接它们。但是,我不能简单地向左添加右参数,因为它们可以共享“键”列,在这种情况下,我希望结果只有右侧的值。

这是 plpgSQL 中的简单任务(unnest、full join、array_agg),但速度很慢。我在 hstore 和 json 中测试了相同的任务,两者都比 unnest+array_agg 快得多,但是如果没有大量的数据库结构更改,我就无法使用这些数据类型,所以我正在寻找不同的解决方案。

0 投票
0 回答
281 浏览

php - 带有大写 PostgreSQL / Doctrine2 的列名

我已经将数据库从 MySql 迁移到 PostgreSQL。一切都很好,但我有列名,比如idEtablissementnomEtablissement等等......

我使用没有 Symfony 的 Doctrine 2,映射是用 XML 完成的

当我提出请求时,我遇到了如下错误:

未捕获的 PDOException:SQLSTATE [42703]:未定义的列:7 错误:列 e0_.idetablissement 不存在

正常,因为它idEtablissement在数据库中命名

我的问题是,如何使用 Doctrine 或直接在 PostgreSQL 数据库中避免这种行为?

我看到在列名周围使用双引号是一种解决方案,但我不知道如何配置 Doctrine 来做到这一点(我已经测试过setQuoteStrategy(new \Doctrine\ORM\Mapping\AnsiQuoteStrategy()),但它不起作用)

0 投票
2 回答
8842 浏览

postgresql - Postgres 9.6:并行查询不采用 max_parallel_workers_per_gather 设置

Postgres 9.6;Centos 6.7 ; 24 核

BigTable1 包含 1,500,000,000 行;重量 180GB。

1) 运行时

根本没有使用“工人计划:”。为什么?

2)在定义的会话中运行相同的查询时

“工人计划:5”出现。执行时间仅提高了 25%。

2.1) 为什么“Workers Planned:”只出现在这个设置之后?2.2) 为什么我们在使用 max_parallel_workers_per_gather = 5 运行时看不到更好的改进?

谢谢!。

0 投票
0 回答
492 浏览

postgresql - Postgresql9.6:为什么 10 个并行查询循环的工作比 1 个循环慢

Postgres 9.6;Centos 6.7 ; 24 核 BigTable1 包含 1,500,000,000 行;重量 180GB。max_worker_processes = 20 max_parallel_workers_per_gather = 12

完成并比较了两个测试:

1) 运行解释分析时,从 BigTable1 中选择 count(*);

我们有“Workers Planned: 10”,查询执行时间是 448 秒。解释分析输出是:

我们看到几乎所有的时间都花在读取和统计 BigTable1 中的数据上

2) 当使用定义的 set max_parallel_workers_per_gather = 0 运行相同的查询时;

执行时间为 547 秒。

问题是:

  • 为什么 10 个循环的工作比 1 个循环慢?
  • 没有并行的查询确实花费了时间,即以下含义是什么:
  • 为什么在并行查询执行测试的情况下没有那些“追加/聚合”部分?
0 投票
3 回答
1348 浏览

mysql - 使用 EnterpriseDB 迁移工具包将 MySQL 数据库迁移到 PostgreSQL

我正在尝试使用 EnterpriseDB 迁移工具将我的 MySQL 数据库转换为 PostgreSQL。我的设置如下:

  • 视窗 10 x64
  • MySQL 5.5.52 社区版 GPL
  • EDB PostgreSQL 9.6.2-2
  • EnterpriseDB 迁移工具包 50.0.1

问题是 - 它成功连接到源 MySQL 和目标 PostgreSQL,但随后失败并出现错误“无法识别的配置参数 db_​​dialect”:

有人遇到同样的问题吗?似乎是 EDB MTK 中的一个错误,但可能是我遗漏了一些东西。将不胜感激任何帮助。