问题标签 [postgres-10]
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 - 如何使用 postgres 10 将最新的 2 行加入到视图中
我想创建一个视图,我可以在其中加入两个最新状态及其时间戳和对视图的评论。我知道我可以使用 min 和 max 作为时间戳,但我怎样才能正确设置他们的评论(见代码中的评论)?最有效的方法是什么?(除了评论,我还有大约 10 列需要加入以了解当前和以前的状态)。
我正在使用 postgres v10
centos7 - Postgresql unlogged tables after server shutdown cause of electricity
In short, I have a very big problem with postgresql 10 installed in centos 7.
I think everyone recently heard about the OVH data center fire located in Strasbourg, well I am one of the customers affected in this fire.
Okay my problem is that I have postgresql version 10 type databases with unlogged tables and this is where my problem starts.
I would like to know is that there is a solution to recover my data from these tables, I bring to your knowledge that I have not yet started the server until now, I had just restarted it in rescue mode and I have a hand access to the files in a disks, so until now all data does not exist truncate before boot.
Please, there is someone here who can help me, I can pay for the intervention if someone already has a solution.
N.B : Sorry for my bad English.
java - 如何使用 JPA 2.1 或更低版本 (Postgres) 在 Java 中序列化和反序列化多参数枚举
我有几个 CameraType 实例。
我有一个“隐藏”属性的设置器,在某些条件下设置为真或假。
现在我用 SecurityEntity 中的几个其他字段序列化 CameraType。
当我反序列化“隐藏”字段的值时,总是假的。如果我理解正确,在反序列化期间会调用 ctor 并分配默认值。
有没有办法在每个 CameraType 实例反序列化后保留“隐藏”字段的值(真或假)。
我正在使用 Postgres DB 10。
请帮忙。我没有线索了。
postgres-10 - 在 postgress 中为 pg_wal 创建符号链接时出错
- 停止了 postgresql 服务
- 然后将 pg_wal 从“/var/lib/postgresql/11/main/”移动到“/root/pg_xlog/archivedir”**
- 使用命令“ln -s /root/pg_xlog/archivedir /var/lib/postgresql/11/main/pg_wal **”创建符号链接
- 它在 /var/lib 下创建了一个“pg_wal->/root/pg_xlog/archivedir”**
- 然后尝试重新启动 postgresql 主服务,它显示错误 not getting restarted 。
- 然后在日志文件中检查。如下所示的错误,如 pg_wal 目录未找到,但它作为指针存在于 /var/lib/postgresql/11/main 中,如上所示。
这个符号链接创建为 /var/lib/postgresql/11/main/ 内的 pg_wal 的链接,当尝试重新启动 postgresql main 时,它的抛出错误如下
“所需的 WAL 目录“pg_wal”不存在”
请建议....
sql - 根据 PostgreSQL 中的多个条件和交集更新多个列
我正在尝试根据不同的条件和几何交集更新我的 PostgreSQL 表中的多个列。
我的输入表由数百万个 100mtx100mt 的正方形组成,其结构是:
列Road 1,2,3...
是空的。
我的第二个表是“道路”,它由“传奇”字段中描述的 6 种道路组成:
我需要Road 1,2,3...
根据与网格相交的道路类型来更新带有 X 的列。例如,如果 id 为 1 的广场与道路“road1”和“road3”相交,则其行应为:
为了做到这一点,我使用了这个查询:
但它的输出不正确。基本上,多个列应同时更新为“x”,但此查询不允许这样做:如果第一个更新的列具有值“x”,则其他列在任何情况下都不会。
有人可以帮助我吗?
postgresql - Postgres 索引问题
我们现在正在一个平台上工作,我在优化我们的一个查询时遇到了困难,它实际上是一个视图。
在解释查询时,会对我的表执行全表扫描user_role
。视图后面的查询看起来像我在下面发布的(我使用 * 代替不同表的不同列,只是为了展示我的问题)。所有结果均基于该简化查询。
基本上这个查询像这样运行正常。如果我解释查询,它会使用我所有的索引,很好!但是.. 一旦我开始添加额外的 where 子句,问题就出现了。我只是添加这个:
并且突然在表company_users
上user_role
执行全表扫描。没有在桌子上project
。
完整的查询计划是:
具体解释company_users
如下:
但是我已经在表上创建了一个索引company_users
:create index if not exists company_users_users_email_companies_id_index on company_users (users_email, companies_id);
.
表的计数相同user_role
。解释是
因此,对于user_role
我来说,列上也有一个索引,role
并且user_email
:create index if not exists user_role_role_user_email_index on user_role (role, user_email);
没想到它会改变任何东西,但无论如何我确实尝试调整查询以在 where 类中仅包含一个角色,并且还尝试使用 OR 语句而不是 IN 但一切都没有区别!
对我来说奇怪的是,如果没有我额外的 3 个过滤器,它可以完美运行,并且一旦我添加它们它就不起作用,但是我确实为解释中提到的字段创建了索引......
我们在其他一些查询中使用完全相同的算法,并且它们在这两个字段上都遇到相同的问题......所以最大的问题是,我如何进一步改进我的查询并使其使用索引而不是完整表扫描?
postgresql - 恢复 postgres 数据库转储时出现问题,出现错误“错误:时区位移超出范围:“2020-03-07 20:52:08.333849-30””
源数据库 - 我从中获取转储的是一个 EC2 实例
目标数据库是本地系统。
架构中的某些字段具有“带时区的时间戳”类型。
无法恢复数据库转储尝试使用 pg_restore 等恢复“.sql”格式“.tar”。但仍然遇到同样的错误。
源数据库 postgres 版本是 10.15 目标数据库 postgres 版本是 10.17
尝试将 postgres.conf 中的“时区”设置在源和目标上对齐,但导入时错误仍然存在。
请帮忙 !!!
sql - Postgres 10.14 中的触发功能未按预期运行
我正在使用胶水将 3 个数据集从 S3 加载到 Aurora Postgres Serverless。由于 spark 和 jdbc 不允许我将 json stings 直接转换为 jsonb 数据类型,因此我在 Postgres 端创建了 3 个“暂存”表。我有一个第四个表 - etl_log - 我已经附加了一个触发函数,见下文在写入时触发。
该函数基本上采用每个这些临时表中的任何内容并将其放在它打算所在的数据类型中的目标中,并为下一次 etl 加载截断临时表。ETL 日志跟踪写入的内容和时间。
到目前为止一切都很好。当任何一个临时表中有数据并被调用时,此函数将按预期工作。但是,如果不止一个表中有记录,那么它似乎表现出两种行为之一:
- 它将数据加载到其中一个目标表中,同时截断两个临时表或
- 即使只调用了一个,它也会从所有临时表加载数据。(第二个表可能正在加载,所有执行程序尚未完成,因此在暂存中留下了一些记录)。
如何在它们独立运行的函数中隔离这些不同的块。我不太担心第二种情况,我已经编写了一个脚本(在 etlside -Glue 上)来计算所有 3 个临时表并写入计数(即使在任何临时表中为零),但我真的很感激关于第一个场景
尽管暂存中有有效的[时间戳存在并且至少初始或联系ID存在]记录,但目标负载的问题没有发生,但函数执行时在具有以下代码的联系流表周围截断了暂存中心:
请参阅下面的完整功能。
提前致谢。
结尾
postgresql - RDS postgres - 将分区表复制到另一个 RDS postgres
我在 RDS1(版本 10)中有一个分区表,我想将其复制到另一个 RDS postgres(版本 10)
我想知道这是否可能。如果是,我应该采用什么方法?
数据应该实时复制,延迟非常低。每天都会添加和删除 master 中的分区。
复制的动机是减少主数据库的负载。
谢谢!
sql - 插入触发器来操作现有行的时间戳
我有一张有 2 个日期列的表格
我想在插入exp_date
具有相同内容的新行时更新现有行的,旧行的 将在新行的前一天。或值都不会在插入查询中code
exp_date
eff_date
eff_date
exp_date
例如:
ID | 代码 | eff_date | 过期日期 |
---|---|---|---|
1 | 12345 | 2021-01-31 | 2021-02-27 |
2 | 12345 | 2021-02-28 | 2021-03-30 |
3 | 12345 | 2021-03-31 | 2021-04-29 |
4 | 12345 | 2021-04-30 | 2021-05-30 |
5 | 12345 | 2021-05-31 | 2025-12-31 |
在此表中,我们希望通过检查最新的现有行(最新的)并将其更新到新行的前一天来更新id=1
行插入行的时间。id=2
eff_date
exp_date
eff_date
exp_date
forid=1
将成为2021-02-27
因为eff_date
新的 row is 2021-02-28
。
这可以通过插入触发器来完成吗?