首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 查詢外鍵關聯:快速找出引用某表/欄位的所有外鍵

     編輯:MySQL 綜合教學

MySQL 查詢外鍵關聯:快速找出引用某表/欄位的所有外鍵

利用 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被引用的父表欄位名

實務用例

  • 刪除/修改父表前,先查詢所有子表外鍵依賴
  • 資料庫文件自動化生成:繪製 ER 圖關聯線
  • 重構時評估影響範圍
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved