1.创建range分区表
语句示例:
create table t3 (id int,name varchar(20),time datetime)
partition by range(time)
(partition p1 values less than ('2015-09-01'),
partition p2 values less than ('2019-07-01'),
partition p3 values equ or less than(maxvalue)
);
2.创建list分区表
create table t4 (c1 int,c2 int,c3 int) partition by list(c3)(partition p1 values(1,2,3),partition p2 values(4,5,6));
3.创建hash分区表
create table t2 (id int,name varchar(20),city varchar(20)) partition by hash(city) (partition part_01,partition part_02,partition part_03);
4.对创建的range分区表添加分区,添加分区是从最后添加的,如果是中间添加要用到split partition
SQL> alter table t3 split partition p3 at ('2020-04-01') into (partition p4,partition p5);
操作已执行
已用时间: 379.017(毫秒). 执行号:206.
SQL>
5.对list分区表添加分区用add partition,而hash分区表添加分区的功能目前不能支持
6.删除分区用drop partition,同样hash分区表的删除分区功能不能支持
示例:
SQL> create table t5 (id int,name varchar(20),time datetime) partition by range(time) (partition p1 values less than ('2015-09-01'),partition p2 values less than ('2020-04-01'),partition p3 values equ or less than (maxvalue));
操作已执行
已用时间: 179.625(毫秒). 执行号:207.
7.交换分区,分区表只能跟普通表交换
示例:
create table t6 (id int,name varchar(20),time datetime);
alter table t3 exchange partition p4 with table t6;
操作已执行
已用时间: 127.108(毫秒). 执行号:210.
8.合并分区
目前只能对range分区表合并分区,对hash和list分区表则没法进行合并
SQL> alter table t3 merge partitions p4,p5 into partition p4_5;
操作已执行
已用时间: 64.381(毫秒). 执行号:211.
SQL>