在 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
0 個留言:
張貼意見