ALTER
TABLE
文のADD
PARTITION
およびADD
SUBPARTITION
句を使用して、複数の新しいパーティションおよびサブパーティションを追加できます。複数のパーティションを追加する場合、ローカルおよびグローバル索引操作は、単一のパーティションを追加する場合と同じ操作です。複数のパーティションおよびサブパーティションの追加は、レンジ、リストおよびシステムのパーティションまたはサブパーティションにのみサポートされています。
MAXVALUE
パーティションが定義されていない場合、レンジ・パーティションまたはコンポジット・レンジ・パーティション表の最高位(既存の最後のパーティションの後)に上限値の昇順で示される複数のレンジ・パーティションを追加できます。同様に、DEFAULT
パーティションが存在しない場合、一連の新しいパーティション値を使用して、複数のリスト・パーティションを表に追加できます。
個々のパーティションを指定することで、単一のSQL文を使用して複数のシステム・パーティションを追加できます。たとえば、次のSQL文は、複数のパーティションを例4-1で作成されたレンジ・パーティション表sales
に追加します。
ALTER TABLE sales ADD PARTITION sales_q1_2007 VALUES LESS THAN (TO_DATE('01-APR-2007','dd-MON-yyyy')), PARTITION sales_q2_2007 VALUES LESS THAN (TO_DATE('01-JUL-2007','dd-MON-yyyy')), PARTITION sales_q3_2007 VALUES LESS THAN (TO_DATE('01-OCT-2007','dd-MON-yyyy')), PARTITION sales_q4_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy')) ;
BEFORE
句を使用して、1つの既存のパーティションのみとの関係で複数の新しいシステム・パーティションを追加できます。次のSQL文は、BEFORE
句を使用して複数の個々のパーティションを追加する例を示します。
CREATE TABLE system_part_tab1 (number1 integer, number2 integer) PARTITION BY SYSTEM ( PARTITION p1, PARTITION p2, PARTITION p3, PARTITION p_last); ALTER TABLE system_part_tab1 ADD PARTITION p4, PARTITION p5, PARTITION p6 BEFORE PARTITION p_last; SELECT SUBSTR(TABLE_NAME,1,18) table_name, TABLESPACE_NAME, SUBSTR(PARTITION_NAME,1,16) partition_name FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='SYSTEM_PART_TAB1';TABLE_NAME TABLESPACE_NAME PARTITION_NAME ------------------ ------------------------------ ---------------- SYSTEM_PART_TAB1 USERS P_LAST SYSTEM_PART_TAB1 USERS P6 SYSTEM_PART_TAB1 USERS P5 SYSTEM_PART_TAB1 USERS P4 SYSTEM_PART_TAB1 USERS P3 SYSTEM_PART_TAB1 USERS P2 SYSTEM_PART_TAB1 USERS P1