您能否向 PostgreSQL 11 分区列表添加一个值



我想使用列表分区根据客户 ID 列的值对表示服务订单的大型表进行分区。 当将新客户添加到系统时,我希望能够将该客户添加到与现有分区相关的值列表中。 我认为会有一种相对简单/快速的方法可以做到这一点,因为不需要移动现有行。从本质上讲,这似乎是更改(可能通过删除和添加(子表上的约束。但是我无法在文档中找到完成此操作的参考。我目前正在使用 带有 postgresql 版本 11.5 的 aws rds,但可能会更新。

使用列表分区需要显式创建每个分区并声明相应的值。因此,您可以使用与父表相同的结构为新customer_id创建一个新表,然后使用

ATTACH PARTITION partition_name { FOR VALUES partition_bound_spec | DEFAULT }

或者,如果您有很多客户并且不想以许多分区结束和/或不希望在旅途中创建表,则可以在customer_id列上使用哈希分区。这样,您可以预定义所需的分区数量,并且只需将新客户添加到其中一个分区中(根据Postgresql的哈希函数的结果(。

相关内容

最新更新