如何使用SQL查询每个表中的所有外键?

时间:2019-07-23 13:13:43

标签: sql database foreign-keys

我有一个包含1600多个表的数据库,我需要知道每个表的外键。我只知道如何通过单击表>列手动查找外键。如何查询它并将其与表名一起显示在一个表中?

1 个答案:

答案 0 :(得分:2)

为此,SQL标准在模式INFORMATION_SCHEMA中定义了目录表和目录视图。

例如“ REFERENTIAL_CONSTRAINTS表在TABLE_CONSTRAINTS表中的每一行都有一行,其CONSTRAINT_TYPE值为“ FOREIGN KEY”。和“ CONSTRAINT_COLUMN_USAGE”视图标识引用约束,唯一约束,检查约束和定义的断言所使用的列 在此目录中,并由给定的用户或角色拥有。”

为了您的特定目的,有几个表/视图需要检查。

如果您的SQL引擎支持INFORMATION_SCHEMA,请查看产品文档的INFORMATION_SCHEMA部分。

如果您的SQL引擎不支持INFORMATION_SCHEMA,则其目录表(如果有)将是专有的(并且可能仅提供基本信息),并且您必须检查产品的doco以获得其目录表的详细信息。