パーティションテーブルにグローバルインデックスがある場合、パーティションテーブルに対してDDL操作を実行できます。
構文
ALTER TABLE relation_expr alter_partition_cmd [update_global_index_clause]
alter_partition_cmd = { DROP PARTITION partition_name |
partition_valuesのDROP PARTITION |
PARTITION partition_name table_partition_descriptionを追加 | .....}
update_global_index_clause = { UPDATE | 無効} グローバルインデックス}
説明
- UPDATE GLOBAL INDEXES: パーティションテーブルに対してDDL操作を実行するときにUPDATE GLOBAL INDEXES句を使用すると、パーティションテーブルのすべてのグローバルインデックスが更新されます。 現在のバージョンでは、UPDATE GLOBAL INDEXES句はサポートされていません。 DDL操作を実行するときにこの句を使用すると、エラーが報告されます。
- INVALIDATE GLOBAL INDEXES: パーティションテーブルに対してDDL操作を実行するときにINVALIDATE GLOBAL INDEXES句を使用すると、パーティションテーブルのすべてのグローバルインデックスが無効になります。
- デフォルトの動作:
- デフォルトでは、グローバルインデックスを含むパーティションテーブルでDDLステートメントが実行されると、エラーが報告されます。
polar_enable_invalidate_global_index
パラメーターがonに設定されており、前述のUPDATE GLOBAL INDEXESおよびINVALIDATE GLOBAL INDEXESキーワードが使用されていない場合、パーティションテーブルのすべてのグローバルインデックスはデフォルトで無効になります。 DDLステートメントにTRUNCATE、CLUSTER、またはVACUUM FULLを含めると、指定されたパーティションテーブルのすべてのグローバルインデックスが無効になります。
- パーティションテーブルにグローバルインデックスがある場合、次のDDL操作を実行できます。
- パーティションをドロップ
- 分割パーティション
- マージパーティション
- 交換パーティション
- パーティションの切り捨て
- 子テーブルの切り捨て
- クラスター /真空フル子テーブル
- 次のいずれかのDDL操作を実行するときにINVALIDATE GLOBAL INDEXES句を使用すると、指定されたパーティションテーブルのグローバルインデックスは無効になりません。
- パーティションの追加
- パーティションを移動
例
- パーティション
を追加ALTER TABLE gi_ora add partition p4値より少ない (400); ALTER TABLE gi_ora ADD PARTITION p4値より少ない (400) 更新グローバルインデックス; ALTER TABLE gi_ora ADD PARTITION p4値が (400) グローバルインデックスを無効にします。(1行)
- ドロップパーティション
ALTER TABLE gi_oraドロップパーティションp4更新グローバルインデックス; ALTER TABLE gi_ora DROP PARTITION p4グローバルインデックスを無効にします。