Mysql資料庫名和表名的大小寫敏感性問題

2021-07-06 03:39:07 字數 919 閱讀 6682

資料庫和表名在 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。

大小寫Mysql資料庫名和表名的影響

在 mysql 中,作業系統的敏感性決定資料庫和表命名的大小寫敏感。乙個特例是 mac os x,當預設的 hfs 檔案系統使用時。然而 mac os x 還支援 ufs 卷,那些在 mac os x 是大小寫敏感的就如他們在任一 unix 上一樣。檢視章節 1.8.3 mysql 對 ansi s...

mysql 資料庫表名大小寫問題

lower case table names 1 原來linux下的mysql預設是區分表名大小寫的,通過如下設定,可以讓mysql不區分表名大小寫 1 用root登入,修改 usr my.cnf 2 在 mysqld 節點下,加入一行 lower case table names 1 3 重啟my...

MySql資料庫 表名大小寫的問題

預設情況下,mysql的資料庫 表名採用小寫表示,即使建表的sql語句中表名是大寫的,在執行後資料庫中的表名還是採用小寫表示。在開發過程有可能採用orm框架來處理業務資料。小寫的表名對於自動生成實體類檔案會產生影響,因為通常類名是採用大寫字母開頭的。通過修改mysql server安裝目錄下的 my...