2010-08-25 97 views
3

使用Oracle,有什麼方法可以執行查詢來確定特定表與我的數據庫中的任何其他表有什麼關係?截至目前,我正在擺弄all_constraints表。查詢查找表關係類型

回答

6

是的,比如,你可以這樣做:

select p.table_name, 'is parent of ' rel, c.table_name 
from user_constraints p 
join user_constraints c on c.r_constraint_name = p.constraint_name 
         and c.r_owner = p.owner 
where p.table_name = 'MYTABLE'  
union all 
select c.table_name, 'is child of ' rel, p.table_name 
from user_constraints p 
join user_constraints c on c.r_constraint_name = p.constraint_name 
         and c.r_owner = p.owner 
where c.table_name = 'MYTABLE' 
+0

我可以查詢'all_constraints',但user_constraints'什麼也沒有返回。除此之外,它就像一種魅力。謝謝。 – Mike 2010-08-25 15:19:36

+0

+1查詢不錯;-) – pgruetter 2012-01-04 13:08:16

3

我認爲最好的辦法是試圖提取儘可能多的信息,你可以從外鍵約束

查看Database Journal的this article,詳細解釋外鍵數據挖掘。