我现有的表具有10年的数据(我已经进行了转储)。
我想在表中的一个日期键列上对现有表进行分区。
我看到的大多数示例都是CREATE TABLE..PARTITION BY RANGE...
用于添加新分区的。但是我的表是现有表。
我想我需要一些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?
两个问题
我需要Alter语句来添加分区机制还是需要使用create语句?
使每个分区仅包含一个月数据的正确语法是什么?
由于您的表未分区,因此您有两个选择:
另外,如果您想每月新建分区,请阅读有关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')));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句