レガシー Oracle データベース システム (10g) を使用していますが、詳細なスキーマ情報がありません。テーブル内の特定のレコードを削除すると、他のテーブルでカスケード削除が発生するかどうかを確認する必要があります。トリガーを確認しました。しかし、参照制約によるカスケードについてはわかりません。これを特定する簡単な方法はありますか?
質問する
11029 次
1 に答える
12
関連する外部キー制約を知っている (または判断できる) と仮定すると、次のDELETE_RULE
列を確認できます。DBA_CONSTRAINTS
SELECT constraint_name, delete_rule
FROM dba_constraints
WHERE r_constraint_name = <<name of the primary key constraint>>
AND r_owner = <<owner of the primary key constraint>>
AND delete_rule = 'CASCADE'
特定の主キー制約を参照し、削除をカスケードするすべての外部キー制約が表示されます。親行が削除されたときに実行する制約が気になる場合は、があっSET NULL
た行も探すことができます。delete_rule
SET NULL
テーブルに対する権限を持っていない場合は、自分が権限を持っているテーブルだけに関心があると仮定して、代わりに をDBA_CONSTRAINTS
使用できることに注意してください。ALL_CONSTRAINTS
SELECT
于 2013-04-28T10:30:35.870 に答える