📅  最后修改于: 2023-12-03 14:55:37.760000             🧑  作者: Mango
在关系型数据库中,主键(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语句,我们可以快速准确地查询到数据库中所有表的主键和外键信息,以便于进行数据关系的分析和设计。