MySQL 允許 64 字元、英數底線美元符,但**作業系統檔案系統**施加額外限制。本文解析 3 大 OS 層級限制:合法字元、名稱長度、大小寫敏感度,並給出跨平台遷移建議。
| 層面 | MySQL 原則 | OS 可能施加的限制 |
|---|---|---|
| 合法字元 | 英數、_、$ | 檔案系統不支援 $、:、\、/、*、?、"、<、>、| 等 |
| 最大長度 | 64 字元 | 舊 System V 僅 14 字元 (資料庫 14、表 10 扣除 .+3 字元副檔名) |
| 大小寫敏感 | 依 OS 檔案系統而定 | Unix/Linux: 敏感 (my_tbl ≠ MY_TBL);Windows: 不敏感 (my_tbl = MY_TBL) |
# 建立資料庫 $my_db
mysql> CREATE DATABASE `$my_db`;
# Shell 下操作需轉義或單引號
ls \$my_db # 轉義
ls '$my_db' # 單引號 (雙引號仍會解變數)
極舊 Unix 系統 (System V) 表名上限 10 字元,超長會建立失敗或截斷衝突。現代 Linux/Windows (255 字元) 無此問題。
my_tbl、MY_TBL 兩表共存。