虚位以待(AD)
虚位以待(AD)
首页 > 数据库 > DB2数据库 > DB2分区表增加分区

DB2分区表增加分区
类别:DB2数据库   作者:码皇   来源:互联网   点击:

DB2分区表增加分区 最近,需要在DB2的分区表中增加新的分区,用于存储数据,因此,就研究了DB2表的分区机制。现在总结,实现的方式共有三种,分别是: 1)、创建临时表,将原表数据导入临时表,之后将原表
DB2分区表增加分区       最近,需要在DB2的分区表中增加新的分区,用于存储数据,因此,就研究了DB2表的分区机制。现在总结,实现的方式共有三种,分别是:     1)、创建临时表,将原表数据导入临时表,之后将原表重建,扩大分区;     2)、通过ALTER TABLE TAB_NAME ADD PARTITION,为表增加分区;     3)、创建临时分区表,向临时分区表中导入数据,之后将临时分区表设置为主表的一个分区。       下面将分别说明三种方式的具体实现:     前提:原分区表PART_MAIN,建表SQL为: [sql]  <span style="font-size:14px;">CREATE TABLE PART_MAIN(   P_ID VARCHAR(10),   P_DATE DATE   )   PARTITION BY RANGE(P_DATE) (   PARTITION OTHERS STARTING MINVALUE ENDING '2012-03-31',   PARTITION P201204 STARTING '2012-04-01' ENDING '2012-04-30',   PARTITION P201205 STARTING '2012-05-01' ENDING '2012-05-31',   PARTITION P201206 STARTING '2012-06-01' ENDING '2012-06-30'   )   ;</span>     需要为PART_MAIN表,增加2012-12-01--2012-12-31的数据分区。       方法一: a、创建临时表 [sql]  <span style="font-size:14px;">CREATE TABLE TMP_PART_MAIN LIKE PART_MAIN;</span>   b、将数据导入临时表中 [sql]  <span style="font-size:14px;">INSERT INTO TMP_PART_MAIN SELECT *    FROM PART_MAIN;</span>   c、重建原表 [sql]  <span style="font-size:14px;">DROP TABLE PART_MAIN;</span>   [sql]  <span style="font-size:14px;">CREATE TABLE PART_MAIN(   P_ID VARCHAR(10),   P_DATE DATE   )   PARTITION BY RANGE(P_DATE) (   PARTITION OTHERS STARTING MINVALUE ENDING '2012-03-31',   PARTITION P201204 STARTING '2012-04-01' ENDING '2012-04-30',   PARTITION P201205 STARTING '2012-05-01' ENDING '2012-05-31',   PARTITION P201206 STARTING '2012-06-01' ENDING '2012-06-30',   PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'   )   ;</span>   d、将数据从临时表导入原表中 [sql]  <span style="font-size:14px;">INSERT INTO PART_MAIN SELECT * FROM TMP_PART_MAIN;</span>   注:该方法是最简单的一种实现方式,不需要掌握DB2分区知识,就可以实现,对于老鸟来说,这种方式是不屑使用的。下面的方法将是技术提升阶段。      方法二: a、为表增加分区 [sql]  ALTER TABLE PART_MAIN ADD PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'   ;   b、增加分区OK,插入数据即可 注:该方法是最直接的,只要记住ALTER TABLE TAB_NAME ADD PARTITION命令就OK。       方法三: a、创建临时分区表 [sql]  CREATE TABLE PART_OTHER (   P_ID VARCHAR(10),   P_DATE DATE   )   PARTITION BY RANGE(P_DATE) (   PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'   )   ;   b、往临时表中增加数据(此步可以省略,在最后一步执行) c、将临时分区表设为原表的一个分区 [sql]  ALTER TABLE PART_MAIN ATTACH    PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'   FROM PART_OTHER   ;   注:此命令执行后,临时分区表PART_OTHER,将不以表的方式存在,而是作为PART_MAIN表的一个分区。 d、为原表新增加的分区,设置访问权限 [sql]  SET INTEGRITY FOR PART_MAIN   ALLOW WRITE ACCESS   IMMEDIATE CHECKED    ;   OK,分区增加完成,可以往新分区中增加数据了。 注:该方法实现起来过于繁琐,建议了解就好。
相关热词搜索: DB2 分区表 增加