首页 > 解决方案 > 基于日期的分区对于表的主键有问题 - 任何解决方法?

问题描述

我有一个表,我想根据“删除”日期进行分区。

create table resources(
        id int,
        type varchar(30),
        deleted date
)

我想从另一个表中获得一个指向该表的 id 列的外键。但是,由于我有基于删除日期的分区,因此我必须将其包含在主键中。将删除的列添加到主键没有意义,还会阻止其他表的FK指向该表。有解决方法吗?

谢谢

标签: postgresql

解决方案


不,对于分区表的外键没有解决方法。您必须添加deleted到主键或唯一约束以及引用分区表的表中。

如果您不希望这样,则必须不使用外键约束。

沿着deletedresources. 然后您可以以协调的方式摆脱旧数据,如果您添加deleted到连接条件,您可以从enable_partitionwise_join = on.


推荐阅读