利用 INFORMATION_SCHEMA.KEY_COLUMN_USAGE 系統表,快速反向查詢哪些表透過外鍵引用了目標表或欄位。
SELECT
TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME,
REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_SCHEMA = ''
AND REFERENCED_TABLE_NAME = '';
SELECT
TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME,
REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_SCHEMA = ''
AND REFERENCED_COLUMN_NAME = '';
USE INFORMATION_SCHEMA;
SELECT
TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME,
REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = ''
AND TABLE_NAME = ''
AND REFERENCED_COLUMN_NAME IS NOT NULL;
| 欄位 | 含義 |
|---|---|
| TABLE_NAME | 持有外鍵的子表名 |
| COLUMN_NAME | 子表外鍵欄位名 |
| CONSTRAINT_NAME | 外鍵約束名稱 |
| REFERENCED_TABLE_NAME | 被引用的父表名 |
| REFERENCED_COLUMN_NAME | 被引用的父表欄位名 |