| 物件 | Windows | Linux |
|---|---|---|
| 表名 | 不敏感 | 敏感 |
| 變數名 | 不敏感 | 敏感 |
| 字欄值 | 不敏感 | 敏感 |
# my.cnf / my.ini [mysqld] lower_case_table_names = 1 # 0=敏感,1=不敏感(Windows 預設),2=存儲按原大小寫但比較不敏感
警告:修改此參數需在資料庫初始化前設定,否則現有表名大小寫不一致會導致無法存取。
CREATE TABLE t (
col VARCHAR(10) BINARY
);
ALTER TABLE `tablename` MODIFY COLUMN `colname` VARCHAR(45) BINARY;
Navicat / Workbench 等 GUI 工具可在欄位屬性中勾選 Binary 或將 Collation 設為 utf8_bin / utf8mb4_bin。
❌ 直接修改表的預設 Collation 為
utf8_bin並不會自動套用至既有字元型欄位,必須逐欄位執行ALTER TABLE ... MODIFY COLUMN ... BINARY。
lower_case_table_names = 0,養成嚴謹命名習慣。mysqldump 導出,再在目標庫建立表結構,避免大小寫衝突。BINARY 或使用 COLLATE utf8mb4_general_ci 明確指定排序規則。