【发布时间】:2012-07-10 14:33:36
【问题描述】:
我可以使用 Oracle sys 表来跟踪两个表之间的路径,从 X 表到 Y 表的所有可能性。 问题是: 我在一个巨大的数据库上工作,很难快速知道哪些表对于在两个表之间建立连接至关重要。 我可以这样做吗?
第一需求:
SQL Developer Data Modeler 和其他工具的问题是必须选择表来 rev_eng(所以我应该已经知道要选择的表)但对我来说,这是主要问题。在我的情况下,我有 800 个表,我不能全部选择它们来跟踪路径。我的愿望是提交两个表作为参数,然后生成所有可能的路径。
第二需求:
我已经尝试查询 sys.all_constraints 并且我所做的最大值是检测直接连接到表 X 的表。 查询:
SELECT C1.TABLE_NAME,C2.TABLE_NAME
FROM ALL_CONSTRAINTS C1, ALL_CONSTRAINTS C2
WHERE C2.CONSTRAINT_NAME = C1.R_CONSTRAINT_NAME
AND UPPER(C1.OWNER) LIKE '**MY_SCHEMA**'
AND C1.CONSTRAINT_TYPE='R'
AND UPPER(C1.TABLE_NAME) LIKE '**X**'
ORDER BY C1.TABLE_NAME
因此,如果有人可以帮助我至少构思查询以获得此结果:
表 1 |表2 |加入CollumnofTable1 | JoinCollumnofTable2
为此,我推测要加入 ALL_CONSTRAINTS 的另一个表是 ALL_CON_COLUMNS 但我发现的问题是复合主键。
【问题讨论】: