ALTER TABLE...ADD SUBPARTITIONコマンドは、サブパーティションを既存のサブパーティションに追加します。
概要
ALTER TABLE table_name MODIFY PARTITION partition_name
SUBPARTITION subpartition_definition;
{list subpartition | range subpartition}
です。SUBPARTITION [subpartition_name]
VALUES (value[, value]...)
[TABLESPACE tablespace_name]
SUBPARTITION subpartition_name
VALUES LESS THAN (value[, value]...)
[TABLESPACE tablespace_name]
説明
ALTER TABLE...ADD SUBPARTITIONコマンドは、サブパーティションを既存のサブパーティションに追加します。 定義されるサブパーティションの数は制限されない。
新しいサブパーティションは、既存のサブパーティションと同じタイプ (LISTまたはRANGE) である必要があります。 新しいサブパーティションのサブパーティショニングルールは、既存のサブパーティションを定義するサブパーティショニングルールで指定された同じ列を参照する必要があります。
ALTER TABLE...ADD SUBPARTITIONステートメントを使用して、MAXVALUEまたはDEFAULTルールを持つテーブルにサブパーティションを追加することはできません。 または、ALTER TABLEを使用することもできます... 既存のサブパーティションを分割するSPLIT SUBPARTITIONステートメント。 これにより、サブパーティションをテーブルに追加することができます。
レンジパーティションテーブルの既存のサブパーティションの前に新しいサブパーティションを追加することはできません。 範囲サブパーティションは昇順で指定する必要があります。
新しいサブパーティションが存在するテーブルスペースを指定するには、TABLESPACE句を含めます。 テーブルスペースを指定しない場合、サブパーティションはデフォルトのテーブルスペースに作成されます。
テーブルにインデックスが付けられている場合は、新しいサブパーティションにインデックスが作成されます。
ALTER TABLE...ADD SUBPARTITIONコマンドを使用するには、テーブルの所有者であるか、スーパーユーザー (または管理者) 権限を持っている必要があります。
パラメーター
パラメーター | 説明 |
table_name | サブパーティションが存在するパーティションテーブルの名前 (オプションでスキーマ修飾) 。 |
partition_name | 新しいサブパーティションが存在するパーティションの名前。 |
subpartition_name | 作成するサブパーティションの名前。 サブパーティション名は、すべてのパーティションおよびサブパーティション間で一意である必要があり、オブジェクト識別子の命名規則に従う必要があります。 |
(value[, value]...) |
|
tablespace_name | サブパーティションが存在するテーブルスペースの名前。 |
例-LIST-RANGEパーティション分割テーブルにサブパーティションを追加する
を使用して作成されます。(
dept_no number,
part_no varchar2,
country varchar2(20),
date date,
金額番号
)
リストによるパーティー (国)
範囲によるサブパーティー (日付)
(
PARTITION europe VALUES('FRANCE', 'ITALY')
(
SUBPARTITION europe_2011
VALUES LESS THAN('2012-Jan-01'),
SUBPARTITION europe_2012
VALUES LESS THAN('2013-Jan-01')
),
PARTITION asia VALUES('INDIA', 'PAKISTAN')
(
SUBPARTITION asia_2011
VALUES LESS THAN('2012-Jan-01'),
SUBPARTITION asia_2012
VALUES LESS THAN('2013-Jan-01')
),
PARTITION americas VALUES('US', 'CANADA')
(
SUBPARTITION americas_2011
VALUES LESS THAN('2012-Jan-01'),
SUBPARTITION americas_2012
VALUES LESS THAN('2013-Jan-01')
)
);
。acctg=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
partition_name | subpartition_name | high_value
---------------- ------------------- + ---------------
ヨーロッパ | europe_2011 | '2012-Jan-01'
ヨーロッパ | europe_2012 | '2013-Jan-01'
asia | asia_2011 | '2012-Jan-01'
asia | asia_2012 | '2013-Jan-01'
アメリカ | americas_2011 | '2012-Jan-01'
アメリカ | americas_2012 | '2013-Jan-01'
(6行)
ALTER TABLE sales MODIFY PARTITION europe
ADD SUBPARTITION europe_2013
より少ない価値 ('2015-Jan-01 ');
acctg=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
partition_name | subpartition_name | high_value
---------------- ------------------- + ---------------
ヨーロッパ | europe_2011 | '2012-Jan-01'
ヨーロッパ | europe_2012 | '2013-Jan-01'
ヨーロッパ | europe_2013 | '2015-Jan-01'
asia | asia_2011 | '2012-Jan-01'
asia | asia_2012 | '2013-Jan-01'
アメリカ | americas_2011 | '2012-Jan-01'
アメリカ | americas_2012 | '2013-Jan-01'
(7行)
新しい範囲サブパーティションを追加する場合、サブパーティショニングルールでは、既存のサブパーティションの後にある範囲を指定する必要があります。
例-RANGE-LISTパーティション分割テーブルにサブパーティションを追加する
を使用して作成されます。(
dept_no number,
part_no varchar2,
country varchar2(20),
date date,
金額番号
)
範囲によるパーティー (日付)
SUBPARTITION BY LIST (country)
(
PARTITION first_half_2012 VALUES LESS THAN('01-JUL-2012')
(
SUBPARTITION europe VALUES ('ITALY', 'FRANCE'),
SUBPARTITION americas VALUES ('US', 'CANADA')
),
PARTITION second_half_2012 VALUES LESS THAN('01-JAN-2013')
(
SUBPARTITION asia VALUES ('INDIA', 'PAKISTAN')
)
);
acctg=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
partition_name | subpartition_name | high_value
------------------ + ------------------- + ---------------------
first_half_2012 | ヨーロッパ | 「イタリア」、「フランス」
first_half_2012 | アメリカ | 「米国」、「カナダ」
second_half_2012 | asia | 'INDIA' 、'PAKISTAN'
(3行)
SUBPARTITION east_asia VALUES ('CHINA') を追加します。
acctg=# SELECT partition_name, subpartition_name, high_value FROM ALL_TAB_SUBPARTITIONS;
partition_name | subpartition_name | high_value
------------------ + ------------------- + ---------------------
first_half_2012 | ヨーロッパ | 「イタリア」、「フランス」
first_half_2012 | アメリカ | 「米国」、「カナダ」
second_half_2012 | asia | 'INDIA' 、'PAKISTAN'
second_half_2012 | east_asia | 「中国」
(4行)