Mysql數據庫名和表名在分歧體系下的年夜小寫敏感成績。本站提示廣大學習愛好者:(Mysql數據庫名和表名在分歧體系下的年夜小寫敏感成績)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql數據庫名和表名在分歧體系下的年夜小寫敏感成績正文
這就意味著數據庫和表名在 Windows 中是年夜小寫不敏感的,而在年夜多半類型的 Unix 體系中是年夜小寫敏感的。一個特例是 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