ORACLE 创建分区表(List模式)
列表分区(List partition)
列表分区是由你为每个分区指定一系列的离散值(列表),当分区键等于特定的离散值时,数据会被放到相应的分区。列表分区可以让你自定义数据的组织方式,例如按照地域来分类数据。
列表分区表是通过 create table 语句的 partition by list 子句来创建的,创建时你需要为每个分区指定一个列表(离散值)。
create table list_part1 ( id number, name varchar2(32), city varchar2(32)) partition by list(city) ( partition p_jiangsu values ('NanJing', 'SuZhou'), partition p_zhejiang values('HangZhou', 'JiaXing') );
你可以选择性的增加一个包含 default 值的分区,这样所有没有预先定义的分区键值都会放入该分区,否则会报错:
create table list_part2 ( id number, name varchar2(32), city varchar2(32)) partition by list(city) ( partition p_jiangsu values ('NanJing', 'SuZhou'), partition p_zhejiang values('HangZhou', 'JiaXing'), partition p_def values (default) );
列表分区建立完成后,你可以很方便的利用 alter table … modify partition … add/drop values ( … ) 来修改列表分区的枚举值:
alter table list_part2 modify partition p_jiangsu add values('YangZhou'); alter table list_part2 modify partition p_jiangsu drop values('YangZhou');
如果列表分区是子分区,只需要将 modify partition 替换为 modify subpartition 即可。