Postgres 中用于范围分区的列中的 NULL

NULL in column used for range partitioning in Postgres

我在 Postgres 10.6 中有一个按范围分区的 table。有没有办法告诉它的一个分区接受用作分区键的列的 NULL?

我需要这个的原因是:我的 table 大小是 200GB,实际上还没有分区。我想继续对它进行分区,所以我想我会创建一个包含所有当前行的初始分区,然后在每个月的月初我会为该月的数据创建另一个分区。

问题是,目前这个 table 没有我将用于分区的列,所以我想添加列(最初是 null)然后告诉初始分区保存分区键中具有 null 的所有行。

另一种选择是不将列添加为 null 而是设置一个初始日期值,但这将是时间 space 消耗,因为 table.

我会升级到 v11 并最初使用包含所有 NULL 值的默认分区定义分区 table。

然后可以添加其他分区,通过更新NULL值逐步移动数据。