注意:INFORMATION_SCHEMA.KEY_COLUMN_USAGE、 TABLE_SCHEMA、REFERENCED_TABLE_NAME等都是MySQL系统中的名称
由于最近公司让迁移弹性数据库,但是弹性库对外键的支持不太友好,因此需要统计所有表中存在的外键,以方便做迁移处理。
一、查询系统中所有数据库下,所有存在外键的表
select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where REFERENCED_TABLE_NAME != ""
二、查询系统中某一个数据库下所有存在外键的表
select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_SCHEMA = "test"
AND REFERENCED_TABLE_NAME != ""
三、查询系统中某一个数据库下某几个表是否存在外键
select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_SCHEMA = "test"
and REFERENCED_TABLE_NAME in ('test_categories','test_products')
AND REFERENCED_TABLE_NAME != ""