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

MySQL 資料庫與資料表大小寫敏感度完整解析

     編輯:MySQL 資料庫相關知識

核心原則:取決於作業系統檔案系統

MySQL 將資料庫對應為目錄、資料表對應為檔案。因此:

  • Windows(NTFS/FAT):大小寫不敏感
  • Linux/Unix(ext4, xfs 等):大小寫敏感
  • macOS (HFS+ 預設):不敏感;UFS 卷:敏感

關鍵規則速查表

物件WindowsLinux/Unix備註
資料庫名不敏感敏感目錄名稱
資料表名不敏感敏感檔案名稱
欄位名不敏感不敏感所有平台一致
欄位別名不敏感不敏感所有平台一致
資料表別名敏感敏感所有平台一致
變數名敏感敏感用戶自定義變數

實戰避坑指南

1. 查詢中混用大小寫會報錯

-- 錯誤示範(Linux 下失敗)
SELECT * FROM my_table WHERE MY_TABLE.col = 1;

同一查詢中引用同一資料表必須大小寫一致。

2. 統一命名慣例(強烈建議)

  • 全部小寫 + 底線分隔:user_profile, order_items
  • 避免使用保留字、中文、特殊符號

3. 透過參數強制統一行為

在 my.cnf / my.ini 的 [mysqld] 區段加入:

lower_case_table_names = 1
  • 0:依檔案系統(Linux 預設)
  • 1:儲存與查找時轉小寫(Windows 預設)
  • 2:儲存保持原樣,查找轉小寫

⚠ 修改此參數需重啟服務,且舊表需先手動改為小寫,否則會找不到表。

驗證當前設定

SHOW VARIABLES LIKE 'lower_case_table_names';

跨平台遷移建議

  1. 開發、測試、生產環境統一使用 Linux,避免大小寫差異導致上線故障。
  2. 遷移時使用 mysqldump 導出,而非直接複製檔案。
  3. 程式碼中 SQL 字串統一採用小寫表名、庫名。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved