首页 > 解决方案 > 在 Range 分区中创建动态分区

问题描述

我有以下情况。假设我有一个有 3 个分区的表。一个是为了20190201下一个是20190202,一个是为了20190210。我被要求了。无论我们通过哪个日期,都应该创建自动分区。因此,如果我使用动态 sql,我可以在例如最大分区之后创建分区20190211。但是如果我想为其创建分区,20190205则会出错。无论如何,即使存在最大分区,也可以在运行时创建分区而不会丢失数据。我们被告知不要创建间隔分区

标签: sqldatabaseoraclepartitioning

解决方案


这很简单。

在创建表本身时,在日期列上使用间隔分区。您可以根据需要选择分区间隔为小时/天/月。

因此,每当您根据日期值向表中插入新数据时,数据都会转到正确的分区或创建新分区。创建时在表中使用以下语法。

partition by range ( date_col )
interval ( NUMTODSINTERVAL(1,'day') )
( partition p1 values less then ( date '2016-01-01' ))

推荐阅读