问题标签 [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.
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
因为dateadd
postgresql 中不存在,但无法解决。
我的查询:
样本数据:
postgresql - PostgreSQL:使用 pgcrypto 加密列
我需要加密 PostgreSQL 9.6 数据库中的一些列。被加密的数据本质上是敏感的;但是,这些数据不是密码或其他身份验证凭据。这些数据需要解密以供用户进行统计分析和消费。
在阅读了几个问题和答案后:
- 在 Postgres 中存储加密数据
- https://dba.stackexchange.com/questions/24370/how-to-use-aes-encryption-in-postgresql
- https://dba.stackexchange.com/questions/59942/secure-postgresql-database-encryption
...并考虑这些评论:
...似乎使用 pgcrypto 模块的最大问题是在同一个数据库中存储密钥。
这就引出了一个问题:
将密钥存储在不同的数据库中并通过外部数据包装器(例如 Postgresql_FDW)访问它是否符合最佳实践?
postgresql - PostgreSQL pg_dumpall 丢失模式
我有一个 postgres 数据库,我正在尝试使用 pg_dumpall 创建完整的脚本来重现我的数据库(也使用 github 来跟踪转储文件的版本)。
我的问题是,为什么 pg_dumpall 会丢失我的数据库模式?例如,我有一个名为“go1”的模式。我的 pg_dumpall 脚本应该为模式“go1”中的用户表生成一个带有“go1.users”的文件。但是转储文件只产生“用户”。它丢失了模式名称。
pg_dumpall 有没有办法保留转储文件中的模式?
sql - 确保所有值都存在于具有一个查询的表中
所以我有一个简单的芬兰和瑞典名字城镇表:
我需要检查一个特定的城镇是否存在。这很容易:
但现在我需要为多个城镇执行此操作,以确保它们都存在:
有没有办法用一个查询而不是使用 Pythonfor
循环来做到这一点?
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 快得多,但是如果没有大量的数据库结构更改,我就无法使用这些数据类型,所以我正在寻找不同的解决方案。
php - 带有大写 PostgreSQL / Doctrine2 的列名
我已经将数据库从 MySql 迁移到 PostgreSQL。一切都很好,但我有列名,比如idEtablissement
,nomEtablissement
等等......
我使用没有 Symfony 的 Doctrine 2,映射是用 XML 完成的
当我提出请求时,我遇到了如下错误:
未捕获的 PDOException:SQLSTATE [42703]:未定义的列:7 错误:列 e0_.idetablissement 不存在
正常,因为它idEtablissement
在数据库中命名
我的问题是,如何使用 Doctrine 或直接在 PostgreSQL 数据库中避免这种行为?
我看到在列名周围使用双引号是一种解决方案,但我不知道如何配置 Doctrine 来做到这一点(我已经测试过setQuoteStrategy(new \Doctrine\ORM\Mapping\AnsiQuoteStrategy())
,但它不起作用)
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 运行时看不到更好的改进?
谢谢!。
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 个循环慢?
- 没有并行的查询确实花费了时间,即以下含义是什么:
- 为什么在并行查询执行测试的情况下没有那些“追加/聚合”部分?
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 中的一个错误,但可能是我遗漏了一些东西。将不胜感激任何帮助。