Oracle外键查询
有时候我们维护数据库需要知道某个表的字段被哪些表的外键关联了,可以用下面的sql语句进行查询:
sql
SELECT
uc.table_name AS "引用表名",
uc.constraint_name AS "外键约束名",
ucc.column_name AS "外键字段"
FROM
user_constraints uc
JOIN
user_cons_columns ucc
ON uc.constraint_name = ucc.constraint_name
WHERE
uc.constraint_type = 'R'
AND uc.r_constraint_name IN (
SELECT constraint_name
FROM user_constraints
WHERE table_name = 'SM_USER'
AND constraint_type IN ('P', 'U') -- 主键或唯一约束
)
ORDER BY
uc.table_name;
还有可能需要查询外键在哪个表:
sql
SELECT table_name
FROM all_constraints
WHERE constraint_name = '外键名称'
AND constraint_type = 'R';