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

MySQL 表名/列名大小寫敏感規則詳解:lower_case_table_names 參數權威指南

     編輯:MySQL 綜合教學

核心規則:作業系統決定敏感度

MySQL 數據目錄 -> 文件系統目錄/文件。
Windows (NTFS, 不區分大小寫) -> 表名不敏感。
Linux/Unix (ext4/xfs, 區分大小寫) -> 表名敏感。
Mac OS X (HFS+ 預設不敏感, UFS 敏感) -> 視卷格式而定。

識別符敏感度總覽表

對象WindowsLinux備註
數據庫名不敏感敏感受 lower_case_table_names 影響
表名不敏感敏感受 lower_case_table_names 影響
表別名不敏感敏感始終敏感 (SQL 標準)
列名不敏感不敏感始終不敏感
列別名不敏感不敏感始終不敏感
變量名 (用戶變量/系統變量)不敏感敏感如 @my_var vs @MY_VAR
字符串比較視排序規則視排序規則_ci 不敏感,_cs/_bin 敏感

lower_case_table_names 參數詳解 (僅讀/啟動時生效)

值存儲 (文件系統)比較 (SQL 解析)適用/風險
0保留原始大小寫敏感Linux 默認。Windows 設為 0 會導致文件系統找不到表 (大小寫不匹配) 报錯,除非文件系統支持大小寫敏感 (NTFS 可開啟但極不推薦)。
1強制轉小寫存儲不敏感 (轉小寫比較)Windows 默認。Linux 設為 1 可實現跨平台兼容 (表名統一小寫)。修改需重建數據目錄。
2保留原始大小寫不敏感 (轉小寫比較)Mac OS X HFS+ 默認。罕用。

修改 lower_case_table_names 完整流程 (高風險操作)

  1. 完整備份:mysqldump --all-databases --routines --triggers --events > full_backup.sql。
  2. 停止服務:systemctl stop mysqld / net stop mysql。
  3. 修改配置:my.cnf / my.ini [mysqld] 下設定目標值。
  4. 刪除/重命名數據目錄:mv /var/lib/mysql /var/lib/mysql_bak (或清空內容)。
  5. 重新初始化:mysqld --initialize-insecure (生成空密碼 root) 或 --initialize。
  6. 啟動服務。
  7. 恢復數據:mysql < full_backup.sql (注意:備份文件內的表名大小寫需與新規則兼容,建議備份前統一轉小寫)。

最佳實踐:統一小寫 + 下劃線命名規範

強制規範:所有庫、表、列、索引、別名**統一使用小寫字母 + 下劃線** (snake_case)。
例如:user_info, order_detail, created_at。

收益

  • 消除跨平台遷移 (Win <-> Linux) 大小寫報錯風險 (100%)。
  • ORM 框架 (Hibernate/JPA/MyBatis) 映射零配置 (默認策略多為小寫)。
  • SQL 編寫無需記憶大小寫,團隊協作認知負擔為零。
  • DBA 運維、監控、腳本處理無大小寫陷阱。

Hibernate/JPA 映射策略配置

# Spring Boot application.yml
spring:
  jpa:
    hibernate:
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
        # 隱式策略: spring.jpa.hibernate.naming.implicit-strategy
    properties:
      hibernate:
        globally_quoted_identifiers: false # 不強制加反引號
# 實體類註解精確控制
@Entity
@Table(name = "user_info") -- 顯式指定小寫表名
public class UserInfo { ... }
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved