既存のパーティションの値リストからリテラル値を削除するには、ALTER
TABLE
文のMODIFY
PARTITION
DROP
VALUES
句を使用します。この文は常に検証しながら実行されます。つまり、削除する一連の値に対応する行がパーティションに存在するかどうかが確認されます。そのような行が見つかると、データベースによってエラー・メッセージが返され、操作が失敗します。必要な場合は、DELETE
文を使用して、対応する行を表から削除した後で値の削除を試行します。
注意:
パーティションを説明する値リストからすべてのリテラル値を削除することはできません。かわりに、ALTER TABLE DROP PARTITION
文を使用してください。
対応するローカル索引パーティションのパーティションの値リストには新しい値リストが反映され、グローバル索引や、グローバルまたはローカル索引パーティションは使用可能なままです。
次の文では、既存のパーティションの値リストから、一連の州コード(OK
およびKS
)を削除します。
ALTER TABLE sales_by_region MODIFY PARTITION region_south DROP VALUES ('OK', 'KS');
注意:
データベースにより、削除されるリテラル値に対応する行がパーティションに存在するかどうかを確認する問合せが実行されます。そのため、表にローカルの同一キー索引を作成することをお薦めします。これにより、問合せおよび操作全体が高速化されます。
デフォルトのリスト・パーティションからは値を削除できません。