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