我想想象(不一定要花哨)我正在分析的数据库的级联删除路径/树。我在查看删除特定表中的单行时所采用的路径时遇到了问题。
我正在寻找的解决方案与Tool to visualize SQL Cascade tree类似,但后来与Oracle数据库类似。
有没有人知道一个好的工具或脚本来帮我解决这个问题?
我目前正在使用SQL Developer,所以如果该工具中有解决方案,我会很高兴听到它......
答案 0 :(得分:0)
也许您可以使用ER图来查看FK如何与您开始的表以及级联表等相关联。
虽然我使用SQL Dev但我必须实际搜索此选项,与其他IDE相比,它非常隐藏。
文件→数据建模器→导入→数据字典→选择数据库连接
编辑:
SELECT uc.constraint_name||CHR(10)
|| '('||ucc1.TABLE_NAME||'.'||ucc1.column_name||')' constraint_source
, 'REFERENCES'||CHR(10)
|| '('||ucc2.TABLE_NAME||'.'||ucc2.column_name||')' references_column
FROM dba_constraints uc
, dba_cons_columns ucc1
, dba_cons_columns ucc2
WHERE uc.constraint_name = ucc1.constraint_name
AND uc.r_constraint_name = ucc2.constraint_name
AND ucc1.POSITION = ucc2.POSITION -- Correction for multiple column primary keys.
AND uc.constraint_type = 'R'
AND uc.delete_rule = 'CASCADE'
ORDER BY ucc1.TABLE_NAME
, uc.constraint_name;
来源: - http://blog.mclaughlinsoftware.com/2009/03/05/validating-foreign-keys/ -Myself