MySQL資料庫中庫 表名 欄位的大小寫問題

2021-08-28 23:29:07 字數 1274 閱讀 6088

原文出處: 

在使用mysql建庫的過程中發現了乙個問題,無論怎麼建立庫,建立出來的庫名都是小寫的。然後上網查了一下資料。

在mysql中,資料庫和表都是對應目錄下的乙個或多個檔案。因此,作業系統的大小寫是否敏感決定了資料庫大小寫是否敏感。而在windows中是對大小寫不敏感的(linux是對大小寫敏感的)。

下圖是在windows作業系統上mysql中lower_case_table_system和lower_case_table_names的預設值。

下圖是在linux作業系統上mysql中lower_case_table_system和lower_case_table_names的預設值。

變數lower_case_file_system說明是否資料目錄所在的檔案系統對檔名的大小寫敏感。on說明檔名的大小寫不敏感,off表示敏感。

使用create table或create database語句制定的大小寫字母在硬碟上儲存表名和資料庫名。名稱比較對大小寫敏感。在大小寫不敏感的作業系統如windows

或max os x上我們不能將引數設為0,如果再大小寫不敏感的檔案系統上將「lower_case_table_names」強制設定為0,並使用不同的大小寫訪問myisam表名,可能會導

致索引破壞。

表名在硬碟上以小寫儲存,名稱比較對大小寫不敏感。mysql將所有表名轉換為小寫儲存和查詢表上。該行為也適合資料庫名和表的別名,該值為windows的預設值。

表名和資料庫名在硬碟上使用createtable或create database語句指定的大小寫字母進行儲存,但mysql將它們轉換為小寫在查詢表上。名稱比較對大小寫不

敏感,即按照大小寫來儲存,按照小寫來比較。注意:只在對大小寫不敏感的檔案系統上適用!innodb表名用小寫儲存。

那麼現在問題來了,如何將linux作業系統上有大小寫的資料庫還原到windows作業系統上?

1、  將資料庫資料通過mysqldump匯出

2、  在my.cnf或my.ini中更改lower_case_table_names=1,並重啟mysql服務。

3、  將匯出的資料匯入mysql資料庫中。

在mysql上為了避免大小寫問題引來的不必要的麻煩,建議都將「lower_case_table_names」設定值為1。我們可以用其他的方式來命名。

資料庫修改表名,欄位名 字段型別

修改表 1 修改表的名稱呢 alter table 表名 rename to 新的名字 demo alter table ta1 rename to ta0 2 新增乙個新字段 alter table 表名 add 新字段 欄位的型別 demo alter table ta0 add unames ...

MySQL查詢資料庫表和資料庫字段

information schema資訊資料庫 mysql中存在乙個自帶的資料庫information schema,其中儲存著關於mysql伺服器所維護的所有其他資料庫的資訊。查詢test database中的檢視 select from information schema.tables whe...

ASP獲取資料庫表名,欄位名

在asp論壇上看到很多問怎麼獲取資料庫表名,欄位名以及如何對欄位進行刪除,增添的操作故寫此文。本人對sqlserver比較熟一些,故以sqlserver為列 set conn server.createobject adodb.connection conn.open server ip位址 pro...