プライマリ・コンテンツに移動
Oracle® Database VLDBおよびパーティショニング・ガイド
12c リリース1 (12.1)
B71291-10
目次へ移動
目次
索引へ移動
索引

前
次

カスケード・オプションを使用したパーティションの切捨て

TRUNCATE TABLEALTER 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 ]