加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

怎样变动现有表以在Oracle中建设范畴分区

发布时间:2021-03-07 09:11:23 所属栏目:站长百科 来源:网络整理
导读:我有现有的表有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')));

(编辑:湖南网)

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

    热点阅读