Mysql數據庫名和表名的大小寫敏感性問題

數據庫和表名在 Windows 中是大小寫不敏感的 ,而在大多數類型的 Unix 系統中是大小寫敏感的
Windows 版的 MySQL 默認繼承 os 的大小寫習慣,即使 SQL中有區分,在導入的時候都會被轉爲小寫,如果今後再將此數據庫導出就可能存在大小寫的問題。my.ini 中有屬性lower_case_table_names 可以更改此默認值,要嚴格區分大小寫,將此項的置設置爲2,再重啓 MySQL 服務即可。
參考:
[mysqld]
lower_case_table_names=2

然而,該查詢在Windows中是可以的。要想避免出現差別,最好採用一致的轉換,例如總是用小寫創建並引用數據庫名和表名。在大多數移植和使用中建議使用該轉換。

在MySQL中如何在硬盤上保存和使用表名和數據庫名由lower_case_tables_name系統變量確定,可以在啓動mysqld 時設置。lower_case_tables_name可以採用下面的任一值:

含義

0

使用CREATE TABLE或CREATE DATABASE語句指定的大寫和小寫在硬盤上保存表名和數據庫名。名稱比較對大小寫敏感。在Unix系統中的默認設置即如此。請注意如果在大小寫不敏感的文件系統上用--lower-case-table-names=0強制設爲0,並且使用不同的大小寫訪問MyISAM表名,會導致索引破壞。

1

表名在硬盤上以小寫保存,名稱比較對大小寫敏感。MySQL將所有表名轉換爲小寫以便存儲和查找。該行爲也適合數據庫名和表的別名。該值爲Windows和Mac OS X系統中的默認值。

2

表名和數據庫名在硬盤上使用CREATE TABLE或CREATE DATABASE語句指定的大小寫進行保存,但MySQL將它們轉換爲小寫以便查找。名稱比較對大小寫敏感。註釋:  在對大小寫不敏感的文件系統上適用! InnoDB表名以小寫保存,例如lower_case_tables_name=1。


發佈了19 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章