我有以下情况。
假设我有一个包含3个分区的表。一个是20190201
,另一个是20190202
,另一个是20190210
。
我被要求。无论我们通过哪个日期,都应该创建自动分区。
因此,如果我使用动态sql,则可以在例如20190211
的最大分区之后创建分区。但是如果我想为20190205
创建分区,则会出错。
无论如何,是否存在在运行时创建分区而不会丢失数据的问题,即使存在最大分区也是如此。
我们被告知不要创建间隔分区
答案 0 :(得分:0)
这很简单。
在创建表本身时,在date列上使用时间间隔分区。 您可以根据需要将分区间隔选择为小时/天/月。
因此,每当您根据日期值将新数据插入表中时,数据都会转到正确的分区或创建新的分区。 创建时在表中使用以下语法。
partition by range ( date_col )
interval ( NUMTODSINTERVAL(1,'day') )
( partition p1 values less then ( date '2016-01-01' ))