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

2021-05-22 20:04:11 字數 1248 閱讀 5733

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

注意:儘管在 windows 中資料庫與表名是忽略大小寫的,你不應該在同乙個查詢中使用不同的大小寫來引用乙個給定的資料庫和表。下面的查詢將不能工作,因為它以 my_table 和 my_table 引用乙個表:

mysql> select * from my_table where my_table.col=1;

列名與列的別名在所有的情況下均是忽略大小寫的。

表的別名是區分大小寫的。下面的查詢將不能工作,因為它用 a 和 a 引用別名:

mysql> select col_name from tbl_name as a where a.col_name = 1 or a.col_name = 2;

如果記憶資料庫和表名的字母大小寫有困難,建議採用乙個一致一約定,例如總是以小寫字母建立資料庫和表。

避免這個問題的另乙個辦法就是以 -o lower_case_table_names=1 引數啟動 mysqld。預設地在 windows 中這個選項為 1 ,在 unix 中為 0。

如果 lower_case_table_names 為 1 ,mysql 將在儲存與查詢時將所有的表名轉換為小寫字線。(從 mysql 4.0.2 開始,這個選項同樣適用於資料庫名。) 注意,當你更改這個選項時,你必須在啟動 mysqld 前首先將老的表名轉換為小寫字母。

$ pwd

/data1/etl/aiinsight/scheduleserver/mysql/support-files

$ ./mysql.server stop

$ pwd

/data1/etl/aiinsight/scheduleserver/mysql/bin

./mysqld_safe --lower_case_table_names

方法2:修改my.cnf配置檔案

在[mysqld]節下加入

lower_case_table_names=1

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...

MySQL資料庫設定表名區分大小寫

使用mysql的朋友有時候會遇到表名稱不區分大小寫的情況,導致匯入資料或者備份資料庫很麻煩。如何設定mysql資料庫表名區分大小寫呢,配置如下 一 修改mysql的配置檔案my.ini my.ini檔案中加入 character set server utf8 lower case table na...