好吧,我是新來的SQL,不太熟悉Oracle SQLDev,但是我所做的工具要求我訪問Oracle數據庫並收集一些信息。我試圖找出外鍵指向哪個表。在SQL Developer中查找來自外鍵的參考表
該數據庫有數千個表格。
實施例:
我得到的包含以下列[ID,用戶,task_type,task_group]的表(任務)。問題是所有這些值都是對應於另一個表的id,並且表命名約定不直觀。
那麼我怎樣才能找出task_type
是指向哪個表?
好吧,我是新來的SQL,不太熟悉Oracle SQLDev,但是我所做的工具要求我訪問Oracle數據庫並收集一些信息。我試圖找出外鍵指向哪個表。在SQL Developer中查找來自外鍵的參考表
該數據庫有數千個表格。
實施例:
我得到的包含以下列[ID,用戶,task_type,task_group]的表(任務)。問題是所有這些值都是對應於另一個表的id,並且表命名約定不直觀。
那麼我怎樣才能找出task_type
是指向哪個表?
select acc.table_name REFERENCING_TABLE_NAME, acc.column_name REFERENCING_COLUMN_NAME
from all_constraints ac1,
all_constraints ac2,
all_cons_columns acc
where ac1.constraint_type = 'P'
and ac1.table_name = :table_name
and ac2.r_constraint_name = ac1.constraint_name
and ac2.constraint_name = acc.constraint_name;
應該工作
select table_name, constraint_name, status, owner
from all_constraints
where r_owner = :r_owner
and constraint_type = 'R'
and r_constraint_name in
(
select constraint_name from all_constraints
where constraint_type in ('P', 'U')
and table_name = :r_table_name
and owner = :r_owner
)
order by table_name, constraint_name
看到我的帖子在這裏(第二個答案),以你如何添加本作中的SQLDeveloper擴展:
How can I find which tables reference a given table in Oracle SQL Developer?
謝謝,這個工作爲了我 – Lex