如何在Postgres继承分区中将数据从一个表移动到另一个表

时间:2019-03-27 11:31:01

标签: database-performance database-partitioning postgresql-10

我已经使用Postgres 10完成了继承分区。因此,我有一个拥有数百万行的主数据库和两个子表,如下所示:

Master
-------------
Id      Date 
------------ 
bigint  timestamp




CurrentData
---------------------
Id         Date
---------------------
12455455   2019-03-27
12455456   2019-03-26
12455457   2019-03-25
12455458   2019-03-24
12455459   2019-03-23
12455450   2019-03-22
12455451   2019-03-21
12455452   2019-03-20

PastData
-------------------
Id         Date 
--------------------
12455411   2019-03-19
12455412   2019-03-18
12455413   2019-03-17
12455414   2019-03-16
12455415   2019-03-15
12455416   2019-03-14
12455417   2019-03-13
12455418   2019-03-12
  1. CurrentData表具有最近7天的数据(比如说2019-03-20至2019-03-27)
  2. PastData表包含早于7天的数据(早于2019-03-20的数据)

因此,将来每天每天都会将数据插入日期为2019-03-28的CurrentData表中 所以我该如何将数据从CurrentData表移至PastData表(假设明天2019-03-20我想将数据从CurrentData移至PastData)。

因此PastData表将变为

PastData
-------------------
Id         Date 
-------------------
12455452   2019-03-20
12455411   2019-03-19
12455412   2019-03-18
12455413   2019-03-17
12455414   2019-03-16
12455415   2019-03-15
12455416   2019-03-14
12455417   2019-03-13
12455418   2019-03-12

我想我将从CurrentData中删除2019-03-20数据并将其插入PastData,但这是正确的方法吗?因为是分区,所以所有数据操作都可以在主数据库上进行,因此,如果我要从CurrentData中删除数据,它将从主数据库中删除数据,而当我在PastTable中插入数据时,它将在主数据库上插入。 我只想在CurrentData中保留最近7天的数据。任何建议都非常感谢。

0 个答案:

没有答案