关于mysql大小写敏感问题
1.决定大小写是否敏感的参数
在 MySQL 中,数据库与 data 目录中的目录相对应。数据库中的每个表都对应于数据库目录中的至少一个文件(可能是多个文件,具体取决于存储引擎)。因此,操作系统的大小写是否敏感决定了数据库大小写是否敏感,而 Windows 系统是对大小写不敏感的,Linux 系统对大小写敏感。
默认情况下,库表名在 Windows 系统下是不区分大小写的,而在 Linux 系统下是区分大小写的。列名,索引名,存储过程、函数及事件名称在任何操作系统下都不区分大小写,列别名也不区分大小写。
除此之外,MySQL 还提供了 lower_case_table_names 系统变量,该参数会影响表和数据库名称在磁盘上的存储方式以及在 MySQL 中的使用方式,在 Linux 系统,该参数默认为 0 ,在 Windows 系统,默认值为 1 ,在 macOS 系统,默认值为 2 。下面再来看下各个值的具体含义:
Value | Meaning |
---|---|
0 | 库表名以创建语句中指定的字母大小写存储在磁盘上,名称比较区分大小写。 |
1 | 库表名以小写形式存储在磁盘上,名称比较不区分大小写。MySQL 在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。 |
2 | 库表名以创建语句中指定的字母大小写存储在磁盘上,但是 MySQL 在查找时将它们转换为小写。名称比较不区分大小写。 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.