ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

MySQL ÖÐ Identifier Case Sensitivity(¶þ)
2018-08-21 06:07:44 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:235´Î
Tags£ºMySQL Identifier Case Sensitivity
LES

Óöµ½ÕâÖÖÇé¿ö¾Í±È½ÏÂé·³ÁË£¬±ØÐëÔÚÅäÖÃÎļþmy.cnfÖÐÉèÖñäÁ¿lower_case_table_names=0£¬ÖØÆôMySQL·þÎñ£¬ËùÒÔÌáÇ°¹æ»®£¬Ê¹ÓÃͳһµÄÃüÃû¹æÔò¾Í·Ç³£ÖØÒª£¬¿ÉÒÔ±ÜÃâÕâÑùµÄÎÊÌâ³öÏÖ¡£ÁíÍâϵͳ±äÁ¿lower_case_table_namesÓÐÈý¸öÖµ£º·Ö±ðÊÇ0¡¢1¡¢2. 

1. ÉèÖóÉ0£º±íÃû°´ÄãдµÄSQL´óСд´æ´¢£¬´óд¾Í´óдСд¾ÍСд£¬±È½Ïʱ´óСдÃô¸Ð¡£ 

2. ÉèÖóÉ1£º±íÃûתСдºó´æ´¢µ½Ó²ÅÌ£¬±È½Ïʱ´óСд²»Ãô¸Ð¡£  

3. ÉèÖóÉ2£º±íÃû°´ÄãдµÄSQL´óСд´æ´¢£¬´óд¾Í´óдСд¾ÍСд£¬±È½ÏʱͳһתСд±È½Ï¡£ 

Value

Meaning

0

Table and database names are stored on disk using the lettercase specified in theCREATE TABLE or CREATE DATABASEstatement. Name comparisons are case sensitive. You should not set this variable to 0 if you are running MySQL on a system that has case-insensitive file names (such as Windows or macOS). If you force this variable to 0 with¨Clower-case-table-names=0 on a case-insensitive file system and access MyISAMtablenames using different lettercases, index corruption may result.

1

Table names are stored in lowercase on disk and name comparisons are not case-sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases.

2

Table and database names are stored on disk using the lettercase specified in theCREATE TABLE or CREATE DATABASEstatement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on file systems that are not case-sensitive! InnoDB table names and view names are stored in lowercase, as forlower_case_table_names=1. 


¹ØÓÚÊý¾Ý¿âÃû´óСдÃô¸Ð£¬»áÓöµ½ÏÂÃæÎÊÌ⣺

1£ºERROR 1010 (HY000): Error dropping database (can¡¯t rmdir ¡®./xxxx¡¯, errno: 39)

1£ºERROR 1010 (HY000): Error dropping database (can't rmdir './xxxx', errno: 39)
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| MyDB               |
| mydb               |
| mysql              |
| performance_schema |
| tmonitor           |
| xiangrun           |
+--------------------+
7 rows in set (0.01 sec)
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.00 sec)
 
mysql> drop database mydb;
ERROR 1010 (HY000): Error dropping database (can't rmdir './mydb', errno: 39)
mysql>

½â¾ö·½·¨£ºÔÚÅäÖÃÎļþmy.cnfÖÐÉèÖñäÁ¿lower_case_table_names=0£¬ÖØÆôMySQL·þÎñ£¬È»ºó¾Í¿ÉÒÔdrop µôÊý¾Ý¿âÁË¡£ 

2£º ERROR 1049 (42000): Unknown database ¡®xxx¡¯

mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.01 sec)
 
mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| MyDB               |
| mysql              |
| performance_schema |
| tmonitor           |
| xiangrun           |
+--------------------+
6 rows in set (0.01 sec)
 
mysql> use MyDB;
ERROR 1049 (42000): Unknown database 'mydb'
mysql>

²Î¿¼×ÊÁÏ£º

  • https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html
Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 2/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºÀûÓà Lambda ±í´ïʽʵÏÖ Java ÖÐ.. ÏÂһƪ£ºÔËÐÐ tail | grep ºó°´Ï Ctrl ¨..

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿