📜  查询获取所有主键和外键 - SQL (1)

📅  最后修改于: 2023-12-03 14:55:37.760000             🧑  作者: Mango

查询获取所有主键和外键 - SQL

在关系型数据库中,主键(Primary Key)和外键(Foreign Key)是非常重要的概念。主键用于唯一标识一条记录,而外键则用于表示该记录与其他表中的记录之间的关系。在某些场景下,需要查询获取所有表的主键和外键信息,以便进行数据关系分析等操作。

查询所有表的主键信息

以下SQL语句可用于查询数据库中所有表的主键信息:

SELECT
    TABLE_SCHEMA,
    TABLE_NAME,
    COLUMN_NAME,
    CONSTRAINT_NAME
FROM
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
    CONSTRAINT_NAME = 'PRIMARY'

返回的结果将包括表的模式(schema)名称,表名称,主键字段名称和主键名称。

查询所有表的外键信息

以下SQL语句可用于查询数据库中所有表的外键信息:

SELECT
    TABLE_SCHEMA,
    TABLE_NAME,
    COLUMN_NAME,
    CONSTRAINT_NAME,
    REFERENCED_TABLE_SCHEMA,
    REFERENCED_TABLE_NAME,
    REFERENCED_COLUMN_NAME
FROM
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
    CONSTRAINT_NAME <> 'PRIMARY'

返回的结果将包括表的模式名称,表名称,外键字段名称,外键名称,所引用的表的模式名称,所引用的表的名称,所引用的表的字段名称。

需要注意的是,上述SQL语句将返回所有表的外键信息,包括自引用(self-referencing)表的外键信息。自引用表的外键信息可能会在部分场景下产生歧义,需要特别注意处理。

通过以上SQL语句,我们可以快速准确地查询到数据库中所有表的主键和外键信息,以便于进行数据关系的分析和设计。