加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

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

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

我有现有的表有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')));

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读