0
点赞
收藏
分享

微信扫一扫

数据库元数据数据字典查询_6_列出给定表的外键引用


                           列出给定表的外键引用

需求描述

需求:查询出给定的表emp的外键约束信息。

解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询。

注: 数据库数据集SQL脚本详见如下链接地址

​​员工表结构和数据初始化SQL脚本​​

 

SQL代码

-- Sql Server:
SELECT
RefObj.name AS RefTab_Name,
fk.name AS Fk_Name,
RefCol.name AS RefTab_Column_Name,
RefedObj.name AS RefedTab_Name,
RefedCol.name AS RefedTab_Column_Name
FROM sys.foreign_keys fk
JOIN sys.all_objects RefObj
ON fk.parent_object_id = RefObj.object_id
JOIN sys.all_objects RefedObj
ON fk.referenced_object_id = RefedObj.object_id
JOIN sys.foreign_key_columns fkCols
ON fk.object_id = fkCols.constraint_object_id
JOIN sys.columns RefCol
ON RefObj.object_id = RefCol.object_id
AND fkCols.parent_column_id = RefCol.column_id
JOIN sys.columns RefedCol
ON RefedObj.object_id = RefedCol.object_id
AND fkCols.referenced_column_id = RefedCol.column_id;

执行结果

数据库元数据数据字典查询_6_列出给定表的外键引用_sql

-- Mysql:
SELECT CONSTRAINT_NAME,TABLE_NAME,COLUMN_NAME,
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA='SHENL' AND TABLE_NAME IN('emp') AND REFERENCED_TABLE_NAME IS NOT NULL

--Oracle:
SELECT A.CONSTRAINT_NAME,A.TABLE_NAME,A.COLUMN_NAME,B.CONSTRAINT_TYPE
FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B
WHERE A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
AND B.CONSTRAINT_TYPE IN('R')
AND A.TABLE_NAME = 'EMP'

 

举报

相关推荐

qt数据库外键查询

0 条评论