我正在开发一个遗留的oracle数据库系统(10g),我没有详细的架构信息.我需要找出删除表中的特定记录是否会导致其他表中的级联删除.我检查了触发器.但是,由于参考约束,我不确定级联.有没有一种简单的方法来识别这个?
假设您知道(或可以确定)所涉及的外键约束,您可以查看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'
Run Code Online (Sandbox Code Playgroud)
将显示引用特定主键约束的所有外键约束,并将级联删除.如果你关心的约束,会做一个SET NULL当父行被删除,你可以寻找行,其中的delete_rule是SET NULL为好.
请注意,如果您没有DBA_CONSTRAINTS表的权限,则可以使用,ALL_CONSTRAINTS而不是假设您实际上只关心您拥有SELECT权限的表.
| 归档时间: |
|
| 查看次数: |
8103 次 |
| 最近记录: |