TRUNCATE
TABLE
、ALTER
TABLE
TRUNCATE
PARTITION
およびALTER
TABLE
TRUNCATE
SUBPARTITION
SQL文のCASCADE
オプションを使用して、参照パーティション化されている子表に切捨て操作をカスケードできます。
CASCADE
オプションがTRUNCATE
TABLE
に指定されている場合、表の切捨て操作は、ON
DELETE
CASCADE
を有効化している有効な参照制約を介してターゲット表を参照する子表も切り捨てます。このカスケード・アクションは、孫、ひ孫などに再帰的に適用されます。有効なON
DELETE
CASCADE
参照制約に基づいて切り捨てる表セットを決定した後、このセットの表がセットの外側の子から有効な制約を介して参照されると、エラーが発生します。親および子が複数の参照制約で接続される場合、少なくとも1つの制約のON
DELETE
CASCADE
が有効であると、親を対象とするTRUNCATE
TABLE
CASCADE
操作に成功します。
権限は、操作に影響されるすべての表に必要です。DROP
STORAGE
またはPURGE
MATERIALIZED
VIEW
LOG
など、操作に指定される他のオプションは、操作に影響されるすべての表に適用されます。
truncate_table ::= TRUNCATE TABLE [schema.] table [ {PRESERVE | PURGE} MATERIALIZED VIEW LOG ] [ {DROP [ ALL ] | REUSE} STORAGE ] [ CASCADE ]
CASCADE
オプションを指定すると、TRUNCATE
PARTITION
およびTRUNCATE
SUBPARTITION
操作は、ターゲット表の子である参照パーティション表にカスケードされます。TRUNCATE
は、参照パーティション階層の任意のレベルで指定でき、ターゲット表から開始される子表にカスケードします。権限は子表に必要ありませんが、表をパーティション化制約ではない有効な参照制約で参照できないなど、TRUNCATE
操作の通常の制約が操作に影響されるすべての表に適用されます。
参照パーティションの子を持たない表に指定されている場合、CASCADE
オプションは無視されます。DROP
STORAGE
またはUPDATE
INDEXES
など、操作に指定される他のオプションは、操作に影響されるすべての表に適用されます。
カスケード・オプションはデフォルトで無効になっているため、Oracle Database互換性に影響しません。
truncate_partition_subpart ::= TRUNCATE { partition_extended_name | subpartition_extended_name } [ { DROP [ ALL ] | REUSE } STORAGE ] [ update_index_clauses [ parallel_clause ]] [ CASCADE ]