我设置了2个本地docker postgresql-10.7服务器。在我的热实例上,我有一个很大的表,想按日期进行分区(我实现了)。分区表中的数据(我们称为PART_TABLE)存储在另一台服务器上,只有PART_TABLE_2019存储在HOT实例上。问题来了。我不知道如何基于FK对具有PART_TABLE外键的其他2个表进行分区。 PART_TABLE和TABLE2_PART都存储在HOT实例上。
我在想这样的事情:
{{1}}
但是查询无法正常工作,我也不知道这是否是个好主意(从性能和逻辑角度来说都是如此)。
我只想说我可以使用函数或脚本等来解决这个问题,但是我想不使用脚本来做到这一点。
答案 0 :(得分:0)
来自文档https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITIONING-DECLARATIVE
“虽然分区表支持主键,但外键 不支持引用分区表。 (外键 从分区表到其他表的引用是 支持。”
答案 1 :(得分:0)
在PostgreSQL v10中,您只能在各个分区上定义外键。但是您可以在每个分区上创建外键。
您可以升级到PostgreSQL v11,该版本允许在分区表上定义外键。
您能解释一下什么是HOT实例,以及为什么这样做会很困难吗?