博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【实验】【PARTITION】RANGE分区表增加分区
阅读量:6934 次
发布时间:2019-06-27

本文共 3324 字,大约阅读时间需要 11 分钟。

1.增加分区的语法

alter table table_name   ...
2.创建一个分区表
sec@ora10g> drop table t_partition_range purge;
Table dropped.
sec@ora10g> create table t_partition_range (id number,name varchar2(50))
2 partition by range(id)(
3 partition t_range_p1 values less than (10) tablespace tbs_part01,
4 partition t_range_p2 values less than (20) tablespace tbs_part02,
5 partition t_range_p3 values less than (30) tablespace tbs_part03
6 );
Table created.
sec@ora10g> col TABLE_NAME for a20
sec@ora10g> col partition_name for a20
sec@ora10g> col HIGH_VALUE for a10
sec@ora10g> col TABLESPACE_NAME for a15
sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;
TABLE_NAME           PARTITION_NAME       HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
T_PARTITION_RANGE    T_RANGE_P1           10         TBS_PART01
T_PARTITION_RANGE    T_RANGE_P2           20         TBS_PART02
T_PARTITION_RANGE    T_RANGE_P3           30         TBS_PART03
3.添加一个分区t_range_p4
sec@ora10g> alter table t_partition_range add partition t_range_p4 values less than(40) tablespace tbs_part04;
Table altered.
sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;
TABLE_NAME           PARTITION_NAME       HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
T_PARTITION_RANGE    T_RANGE_P1           10         TBS_PART01
T_PARTITION_RANGE    T_RANGE_P2           20         TBS_PART02
T_PARTITION_RANGE    T_RANGE_P3           30         TBS_PART03
T_PARTITION_RANGE    T_RANGE_P4           40         TBS_PART04
从这个结果可以看到t_range_p4分区已经创建成功
4.命题:如果在创建RANGE分区表的时候指定了maxvalue,不可以添加分区(需要使用split方法来处理)
5.实验证明之
6.创建带有maxvalue的分区表
sec@ora10g> drop table t_partition_range purge;
Table dropped.
sec@ora10g> create table t_partition_range (id number,name varchar2(50))
2 partition by range(id)(
3 partition t_range_p1   values less than (10) tablespace tbs_part01,
4 partition t_range_p2   values less than (20) tablespace tbs_part02,
5 partition t_range_p3   values less than (30) tablespace tbs_part03,
6 partition t_range_pmax values less than (maxvalue) tablespace tbs_part04);
Table created.
7.此时添加分区时会报如下的错误
sec@ora10g> alter table t_partition_range add partition t_range_p4 values less than(40) tablespace tbs_part04;
alter table t_partition_range add partition t_range_p4 values less than(40) tablespace tbs_part04
                                            *
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition
难道针对这样的分区表就不能修改添加分区了么?对于强大的来说那是不可能的,处理方法是使用split的方法来处理之。
8.展示使用split完成上面没有完成的分区任务
sec@ora10g> alter table t_partition_range split partition t_range_pmax at (40) into (partition tbs_part05, partition t_range_pmax);
Table altered.
sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;
TABLE_NAME           PARTITION_NAME       HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ----------------
T_PARTITION_RANGE    T_RANGE_P1           10         TBS_PART01
T_PARTITION_RANGE    T_RANGE_P2           20         TBS_PART02
T_PARTITION_RANGE    T_RANGE_P3           30         TBS_PART03
T_PARTITION_RANGE    T_RANGE_P4           40         TBS_PART05
T_PARTITION_RANGE    T_RANGE_PMAX         MAXVALUE   TBS_PART04
OK,搞定。

分类: 
本文转自einyboy博客园博客,原文链接:http://www.cnblogs.com/einyboy/archive/2012/07/25/2608766.html
你可能感兴趣的文章
IOS 获取缓存目录文件大小并清除
查看>>
Windows10 + VS2015 (Win SDK10)环境下的64位 VTK编译小结
查看>>
实习二 栈、队列和递归算法设计 (题目:停车场管理 )
查看>>
使用XML与远程服务器进行交互
查看>>
正则表达式 元字符
查看>>
Vue 使用v-bind:style 绑定样式
查看>>
英语发音规则---F字母
查看>>
为什么三层交换机无法替代路由器?
查看>>
js进阶 11-22/23 js如何实现选项卡
查看>>
php中一个经典的!==的用法
查看>>
关于肥胖和美国为什么那么多胖子
查看>>
JavaScript&jQuery.变量作用域
查看>>
[网络流24题]骑士共存问题
查看>>
请给出一个算法,使之对于给定的介于0到k之间的n个整数进行预处理,并能在O(1)时间内,回答出输入的整数中有多少个落在区间[a..b]内,你给出的算法上预处理时间应是O(n+k)。...
查看>>
\r 和 \n
查看>>
python3面向对象(1)
查看>>
自定义ClassLoader实现java应用核心逻辑模块热部署
查看>>
如何挑选适合的前端框架(去哪儿网前端架构师司徒正美)
查看>>
C# 中Excel导出,可以自由设置导出的excel格式
查看>>
搜索引擎技术——全文检索基础原理
查看>>