Oracle 查詢表名和列名以及所有外來鍵
阿新 • • 發佈:2019-01-09
分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
1.查詢所有表
select table_name,tablespace_name,temporary from user_tables [where table_name=表名]
2.查詢所有列名
select column_name,data_type ,data_length,data_precision,data_scale,table_name from user_tab_columns [where table_name=列名];
3.查詢所有外來鍵
select * from user_constraints a where a.constraint_type = 'R' [and a.table_name = 表名 ]
4.根據外來鍵名稱獲取 約束表 和 約束列
select * from user_cons_columns b where b.constraint_name = {a.constraint_name}
說明:{a.constraint_name} 是從上面3中查詢果中獲取的外來鍵名稱
5.根據外來鍵引用表的鍵名 獲取 參照表 和 參照列
select * from user_cons_columns c where b.constraint_name = {a.r_constraint_name}
說明:{a.r_constraint_name} 是從上面3中查詢果中獲取的參照key名稱
6.整合後查詢
select b.constraint_name 外來鍵名稱, b.table_name 約束表, b.column_name 約束列,c.table_name as 參照表,c.column_name 參照列,a.delete_rule 刪除級聯
from user_constraints a
left join user_cons_columns b on a.constraint_name = b.constraint_name
left join user_cons_columns c on a.r_constraint_name = c.constraint_name
where a.constraint_type = 'R' and a.table_name = 'ACT_RU_TASK'
對應結果: