设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: 专业 娱乐 服务 applewat
当前位置: 首页 > 站长百科 > 正文

如何更改现有表以在Oracle中创建范围分区

发布时间:2021-05-14 12:10 所属栏目:[站长百科] 来源:网络整理
导读:我有现有的表有10年的数据(我已经采取转储). 我想在表中的一个日期键列上对现有表进行Range分区. 我看到的大多数示例都是使用CREATE TABLE..PARTITION BY RANGE …添加新分区.但我的桌子是现有的桌子. 我假设我需要一些ALTER语句. ALTER TABLE TABLE_NAMEP

我有现有的表有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语句?
>保持每个分区只有一个MONTH数据的正确语法是什么.

解决方法

因为你的表没有分区你有两个选择:

>导出数据,删除表,创建新的patitioned表,导入数据.
>使用split然后交换分区方法. https://oracle-base.com/articles/misc/partitioning-an-existing-table-using-exchange-partition

此外,如果您希望每月新分区,请阅读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')));

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读