我现有的表有 10 年的数据(我已经转储了)。
我想在表中的一个日期键列上对现有表进行范围分区。
我看到的大多数例子都是 CREATE TABLE..PARTITION BY RANGE...
添加新分区。但我的 table 是现有的 table 。
我想我需要一些 ALTER
陈述。
ALTER TABLE TABLE_NAME
PARTITION BY RANGE(CREATED_DATE)
PARTITION JAN16 VALUES LESS THAN (01-02-2016),
PARTITION FEB16 VALUES LESS THAN (01-03-2016) AND GREATER THAN(31-01-2016),//OR?
PARTITION MAR16 VALUES BETWEEN (01-03-2016) AND (31-03-2016), //OR?
两个问题。。
最佳答案
因为您的表未分区,您有两个选择:
此外,如果您希望每个月都有新的分区,请阅读有关 SET INTERVAL 的信息。例如:
CREATE TABLE tst
(col_date DATE)
PARTITION BY RANGE (col_date) INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
(PARTITION col_date_min VALUES LESS THAN (TO_DATE('2010-01-01', 'YYYY-MM-DD')));
关于oracle - 如何更改现有表以在 Oracle 中创建范围分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932771/