数据库
首页 > 数据库> > mysql-使用信息模式中的KEY_COLUMN_USAGE计算外键的数量

mysql-使用信息模式中的KEY_COLUMN_USAGE计算外键的数量

作者:互联网

我有一个很大的MySQL数据库,我需要知道它有多少个外键.我尝试使用以下命令:

SELECT COUNT(*) AS 'number of foreign keys'
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA='pubs' 
AND REFERENCED_TABLE_NAME IS NOT NULL;

在小型数据库(pubs)中,它返回正确数量的外键,但是我不确定在所有情况下此查询是否都可以.
这个查询正确吗?还有另一种方法吗?

提前致谢.

解决方法:

referential_constraints表包含有关外键的信息.因此,您可以简单地执行以下操作:

SELECT COUNT(DISTINCT CONSTRAINT_NAME)
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_SCHEMA = 'pubs';

使用COUNT(DISTINCT)组合在同一外键约束中的多个列.如果要分别计算所有列,请改用COUNT(*).

标签:information-schema,mysql
来源: https://codeday.me/bug/20191119/2039263.html