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

Linux 下 MySQL 大小寫敏感度配置:lower_case_table_names 參數完整解析

     編輯:MySQL 資料庫相關知識

預設行為

修改表名大小寫敏感度

編輯 /etc/my.cnf,在 [mysqld] 區段新增:

lower_case_table_names = 1
  • 0:區分大小寫(Linux 預設)
  • 1:不區分大小寫(儲存為小寫,比較轉小寫)
  • 2:儲存保留大小寫,但比較轉小寫(罕用)

修改後**必須重啟 MySQL 服務**生效。

⚠️ 遷移風險警告

**已有資料的資料庫修改此參數極高風險**:

  • 表檔案實體名稱會改變(大小寫轉換)
  • 可能導致現有表無法存取、資料遺失
  • **建議**:新實例規劃階段決定,遷移時全量重建

欄位值大小寫敏感查詢

若需在查詢時區分欄位**值**的大小寫,欄位需具備 BINARY 屬性:

建表時指定

CREATE TABLE T (
    A VARCHAR(10) BINARY
);

ALTER 修改既有欄位

ALTER TABLE `tablename` MODIFY COLUMN `colname` VARCHAR(45) BINARY;

GUI 工具

MySQL Table Editor 中直接勾選 BINARY 選項。

實務建議

  1. **統一命名規範**:全小寫 + 底線分隔(如 user_order),規避跨平台大小寫坑
  2. **應用層統一轉換**:查詢前將表名/欄位名轉小寫
  3. **避免依賴大小寫區分業務邏輯**
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
物件Linux 預設Windows 預設
資料庫名/表名嚴格區分大小寫不區分
表別名嚴格區分大小寫不區分
欄位名/欄位別名全部忽略大小寫不區分
變數名嚴格區分大小寫不區分