首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 快速查找包含指定欄位的所有資料表:INFORMATION_SCHEMA 實戰

     編輯:MySQL 資料庫相關知識

核心查詢語句

利用 INFORMATION_SCHEMA.COLUMNS 系統視圖,可秒級定義包含特定欄位名的所有資料表,無需逐庫逐表人工檢查。

SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.`COLUMNS`
WHERE COLUMN_NAME = '目標欄位名';

參數說明

  • TABLE_SCHEMA:資料庫名稱
  • TABLE_NAME:資料表名稱
  • COLUMN_NAME:精確匹配欄位名(區分大小寫取決於 collation)

進階應用場景

1. 模糊匹配欄位名

WHERE COLUMN_NAME LIKE '%user_id%'

2. 結合資料類型過濾

WHERE COLUMN_NAME = 'status' AND DATA_TYPE = 'tinyint'

3. 產出 ALTER 語句批量修改

SELECT CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` MODIFY `', COLUMN_NAME, '` INT NOT NULL;')
FROM information_schema.COLUMNS
WHERE COLUMN_NAME = 'old_id' AND DATA_TYPE = 'varchar';

效能提示

INFORMATION_SCHEMA 查詢在表極多(萬張以上)時可能較慢,建議:

  • 限定 TABLE_SCHEMA 縮小範圍
  • 避免在高峰期頻繁執行
  • 配合 innodb_stats_on_metadata = OFF 減少統計資訊鎖競爭
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved