有没有什么软件可以从Oracle数据库自动生成ER图?
我的问题是数据库在设计过程中有一些“噪音”,它错过了一些强制性的外键。再者,db的大小相当大,不能简单地遍历每张表手动检查。
任何帮助或建议将不胜感激。
谢谢 :)
好吧,如果有“缺失”的强制性外键,那么从技术上讲,这些外键不是强制性的,也不是缺失的。但我感觉到你的痛苦。
可能,作为开始,我会搜索共享列名并且其列名出现在表的主键列中的表:
select
a.table_name,
b.table_name,
a.column_name
from
all_tab_columns a
join all_tab_columns b on a.table_name != b.table_name and
a.column_name = b.column_name
join all_tables u on b.table_name = u.table_name -- Exlude Views!
join all_constraints p on a.table_name = p.table_name and
p.constraint_type = 'P'
join all_cons_columns c on p.constraint_name = c.constraint_name and
c.column_name = a.column_name