2012年2月7日星期二

查看Oracle資料庫表格的外鍵(foreign key)關係

在沒有商業版Toad此類功具的協助下,一般的程式開發者在跟進已完成的系統結構時,遇到文件做得不好的系統,往往都會在追尋從屬關係時感到困難。即使是使用Oracle SQL Developer也未能幫得上忙。

雖然沒有好工具,我們也可以靠Oracle的完善的視圖(View)找查表格(table)之間的關係。

以下是光靠SQL查出關連的外鍵(foreign key),雖然未及使用軟件般有圖表和連線展現關係表,但總算可以清晰地列出有關的外鍵和表格。


代入表格名後,可以找到其他有引用到本表格欄位的外鍵。
SELECT table_name, constraint_name, r_constraint_name, status
FROM user_constraints
WHERE constraint_type = 'R'
AND r_constraint_name in
(
SELECT constraint_name from user_constraints
WHERE constraint_type in ('P', 'U')
AND UPPER(table_name) = UPPER('table_name')
)
ORDER BY table_name, constraint_name;



代入表格名後,可以找到本表格找用了哪些表格欄位作外鍵。
SELECT table_name, constraint_name, r_constraint_name, status
FROM user_constraints
WHERE constraint_type = 'R'
AND UPPER(table_name) = UPPER('table_name')
ORDER BY table_name;



沒有留言:

發佈留言