Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

MySQL Case Insensitive for Table Names

Posted on 2011 年 5 月 25 日2021 年 3 月 12 日 By 日落 在〈MySQL Case Insensitive for Table Names〉中尚無留言

MySQL 的資料庫為一目錄、資料表為數檔案,MySQL server 會依照 SQL query 去讀取指定位置的檔案,但在 Windows 底下檔名不分大小寫、Linux 底下則有分大小寫。

在 Windows 中底下二個 SQL query 的結果相同:

select * from user_Name;
select * from user_Name; -- 不分大小寫,結果同上

但若是將做資料轉移從 Windows 轉到 Linux 後,卻會因為區分大小寫而造成 dump 回去的資料與 query 到的資料表被視為不同:

create table `user_Name` ( blablabla ..... );
select * from user_name; -- 大小寫不同撈不到資料

若遇到這情況,可以在 my.ini (或 my.cnf) 的 [mysqld] 標籤後加上「lower_case_table_names」參數,讓 MySQL server 處理指令時自動處理。

= 0:資料庫與資料表名稱均區分大小寫

= 1:資料庫與資料表檔案名稱均使用小寫,SQL 語法中的資料庫與資料表名稱均轉換成小寫再做比對

= 2:建立資料庫與資料表時檔案名稱區分大小寫,查詢時轉換成小寫再做比對,僅是用於不區分大小寫的檔案系統。

參考資料:MySQL case insensitive table and column names – Cosmin’s Wiki
http://cosminswiki.com/index.php/MySQL_case_insensitive_table_and_column_names

Tags:Linux, MySQL, Windows

文章導覽

Previous Post: 藍星侵略地圖
Next Post: Ubuntu 客製化

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.