在特定日期之前为任何内容创建分区
Create partition for anything before a specific date
我正在创建一个日期分区 table mytable
。我每年有 5 个分区,但在第一个分区的年份之前我想要另一个分区。
我的代码和分区如下所示:
CREATE TABLE mytable (
"id" INT,
"data" TEXT,
"date" DATE
) PARTITION BY RANGE (date);
CREATE TABLE mytable_2010_2011 PARTITION OF mytable
FOR VALUES FROM ('2010-01-01') TO ('2011-01-01');
-- 3 more partitions
CREATE TABLE mytable_2014_2015 PARTITION OF mytable
FOR VALUES FROM ('2014-01-01') TO ('2015-01-01');
-- Everything before 2010
CREATE TABLE mytable_pre2010 PARTITION OF mytable
FOR VALUES FROM ('1500-01-01') TO ('2010-01-01');
是否可以在不设置硬编码日期的情况下创建最后一个分区来保存 2010 年之前的所有内容。类似于 FOR VALUES BEFORE ('2010-01-01');
你可以使用 -infinity
:
-- Everything before 2010
CREATE TABLE mytable_pre2010 PARTITION OF mytable
FOR VALUES FROM ('-infinity') TO ('2010-01-01');
我正在创建一个日期分区 table mytable
。我每年有 5 个分区,但在第一个分区的年份之前我想要另一个分区。
我的代码和分区如下所示:
CREATE TABLE mytable (
"id" INT,
"data" TEXT,
"date" DATE
) PARTITION BY RANGE (date);
CREATE TABLE mytable_2010_2011 PARTITION OF mytable
FOR VALUES FROM ('2010-01-01') TO ('2011-01-01');
-- 3 more partitions
CREATE TABLE mytable_2014_2015 PARTITION OF mytable
FOR VALUES FROM ('2014-01-01') TO ('2015-01-01');
-- Everything before 2010
CREATE TABLE mytable_pre2010 PARTITION OF mytable
FOR VALUES FROM ('1500-01-01') TO ('2010-01-01');
是否可以在不设置硬编码日期的情况下创建最后一个分区来保存 2010 年之前的所有内容。类似于 FOR VALUES BEFORE ('2010-01-01');
你可以使用 -infinity
:
-- Everything before 2010
CREATE TABLE mytable_pre2010 PARTITION OF mytable
FOR VALUES FROM ('-infinity') TO ('2010-01-01');