我现有的表包含 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 语句?
保持每个分区仅包含一个月数据的正确语法是什么?
如果您正在使用Oracle 12c Release 2
你可以使用单个ALTER
将非分区表转换为分区表(这是单程):
CREATE TABLE my_tab ( a NUMBER(38,0), b NUMBER(38,0));
ALTER TABLE MY_TAB MODIFY PARTITION BY RANGE (a) INTERVAL (1000) (
PARTITION p1 VALUES LESS THAN (1000)) ONLINE;
您也可以转换索引,添加:
update indexes (index_name [local/global]);
db小提琴演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)