パーティションにデータが含まれ、参照整合性制約がある場合には、パーティションを切り捨てられません。削除するパーティションのデータを参照しているデータがない場合は、次のいずれかの方法(方法1または2)を選択して表パーティションを切り捨てます。
方法1
整合性制約を無効化し、ALTER
TABLE
TRUNCATE
PARTITION
文を実行し、整合性制約を再度有効化します。これは、切り捨てられるパーティションに表の合計データの大部分が含まれる大規模な表に最適な方法です。別の表に参照元のデータがある場合には、そのデータを削除して、整合性制約を再度有効化できるようにする必要があります。
方法2
ALTER
TABLE
TRUNCATE
PARTITION
文を発行する前に、DELETE
文を発行してパーティションからすべての行を削除します。DELETE
文によって、参照整合性制約が施行されます。また、トリガーが起動されて、REDOログとUNDOログが生成されます。参照表のデータが削除されるのは、外部キー制約がON DELETE CASCADE
オプション付きで作成されていた場合です。
DELETE FROM sales partition (dec94); ALTER TABLE sales TRUNCATE PARTITION dec94;
これは、小規模な表、または切り捨てられるパーティションに含まれる表の合計データの割合が少ない場合に、大規模な表に最適な方法です。