すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ALTER TABLE ... MOVE PARTITION

最終更新日:Jun 05, 2024

ALTER TABLE...MOVE PARTITIONコマンドを使用して、パーティションまたはサブパーティションを別のテーブルスペースに移動できます。

概要

ALTER TABLE...MOVE PARTITIONコマンドには2つの形式があります。
  • 最初の形式は、パーティションを新しいテーブルスペースに移動することです:
    ALTER TABLE table_name 
      MOVE PARTITION partition_name 
       TABLESPACE tablespace_name; 
  • 2番目の形式は、サブパーティションを新しいテーブルスペースに移動することです:
    ALTER TABLE table_name 
      MOVE SUBPARTITION subpartition_name 
       TABLESPACE tablespace_name; 
ALTER TABLE...MOVE PARTITIONコマンドの構文は、パーティションとサブパーティションを区別しません。
  • パーティションを移動するには、move partition句またはMOVE SUBPARTITION句を使用します。
  • サブパーティションは、move PARTITION句またはMOVE subpartition句を使用して移動できます。

説明

ALTER TABLE...MOVE PARTITIONコマンドは、パーティションまたはサブパーティションを現在のテーブルスペースから別のテーブルスペースに移動します。 ALTER table... MOVE PARTITIONまたはALTER TABLE...MOVE SUBPARTITIONを呼び出すテーブルを所有する必要があります。

パラメーター

パラメーター説明
table_nameパーティションが存在するテーブルの名前 (オプションでスキーマ修飾) 。
partition_name移動するパーティションまたはサブパーティションの名前。
tablespace_nameパーティションまたはサブパーティションの移動先のテーブルスペースの名前。

例-パーティションを別のテーブルスペースに移動する

次の例では、あるテーブルスペースから別のテーブルスペースに sales テーブルのパーティションを移動します。 まず、次のコマンドを実行してsalesテーブルを作成します。

(
  dept_no number,
  part_no varchar2,
  country varchar2(20),
  date date,
  金額番号
)
範囲によるパーティー (日付)
(
  PARTITION q1_2012 VALUES LESS THAN ('2012-Apr-01'),
  PARTITION q2_2012 VALUES LESS THAN ('2012-Jul-01'),
  PARTITION q3_2012 VALUES LESS THAN ('2012-Oct-01'),
  PARTITION q4_2012 VALUES LESS THAN ('2013-Jan-01') TABLESPACE ts_1,
  パーティーq1_2013の値は ('2013-Mar-01 ') テーブルスペースts_2
); 
ALL_TAB_PARTITIONSビューを照会すると、パーティションが予想されるサーバーとテーブルスペースにあることが確認されます:
acctg=# SELECT partition_name, tablespace_name FROM ALL_TAB_PARTITIONS;
 partition_name | tablespace_name
---------------- ------------- -----------------
 q1_2013 | ts_2
 q4_2012 | ts_1
 q3_2012 | 
 q2_2012 | 
 q1_2012 |
(5行) 
ターゲットテーブルスペースを準備したら、ALTER TABLE...MOVE PARTITIONコマンドを呼び出して、q1_2013パーティションをts_2という名前のテーブルスペースからts_3という名前のテーブルスペースに移動します。
ALTER TABLE sales move partition q1_2013 tablespace ts_3;
ALL_TAB_PARTITIONSビューのクエリは、移動が成功したことを示しています:
acctg=# SELECT partition_name, tablespace_name FROM ALL_TAB_PARTITIONS;
 partition_name | tablespace_name
---------------- + -----------------
 q1_2013 | ts_3
 q4_2012 | ts_1
 q3_2012 | 
 q2_2012 | 
 q1_2012 |
(5行)