外鍵列表及其引用的表我正在嘗試查找一個查詢,它將返回一個表的外鍵列表以及它們引用的表和列。我在那里一半SELECT a.table_name,
a.column_name,
a.constraint_name,
c.ownerFROM ALL_CONS_COLUMNS A, ALL_CONSTRAINTS C
where A.CONSTRAINT_NAME = C.CONSTRAINT_NAME
and a.table_name=:TableName
and C.CONSTRAINT_TYPE = 'R'但我仍然需要知道此鍵引用了哪個表和主鍵。我怎么會這樣?
3 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
引用的主鍵在列r_owner和r_constraint_name表中描述ALL_CONSTRAINTS。這將為您提供所需的信息:
SELECT a.table_name, a.column_name, a.constraint_name, c.owner,
-- referenced pk
c.r_owner, c_pk.table_name r_table_name, c_pk.constraint_name r_pk
FROM all_cons_columns a
JOIN all_constraints c ON a.owner = c.owner
AND a.constraint_name = c.constraint_name
JOIN all_constraints c_pk ON c.r_owner = c_pk.owner
AND c.r_constraint_name = c_pk.constraint_name
WHERE c.constraint_type = 'R'
AND a.table_name = :TableName

烙印99
TA貢獻1829條經驗 獲得超13個贊
試試這個:
select * from all_constraints where r_constraint_name in (select constraint_name from all_constraints where table_name='YOUR_TABLE_NAME');
- 3 回答
- 0 關注
- 770 瀏覽
添加回答
舉報
0/150
提交
取消