【发布时间】:2016-06-26 06:12:20
【问题描述】:
我现有的表有 10 年的数据(我已经转储了)。
我想在表中的一个日期键列上对现有表进行 Range 分区。
我看到的大多数示例都是使用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 语句?
保持每个分区只有 ONE MONTH 数据的正确语法是什么。
【问题讨论】:
-
你不能
alter一个表被分区。您需要删除并重新创建它。您只能使用alter将分区添加到已经分区的表 -
@a_horse_with_no_name
You can not alter a table to be partitioned其实你可以:) -
@lad2025: 但仅限于
dbms_redefinition,这不完全是alter声明 -
@a_horse_with_no_name 我指的是my answer,而不是DBMS_REDEFINITION。
-
嗯,那在 2016 年我写评论时是不可能的
标签: oracle create-table alter-table partition