Mysql数据库名和表名的大小写敏感性问题

数据库和表名在 Windows 中是大小写不敏感的 ,而在大多数类型的 Unix 系统中是大小写敏感的
Windows 版的 MySQL 默认继承 os 的大小写习惯,即便 SQL中有区分,在导入的时候都会被转为小写,若是从此再将此数据库导出就可能存在大小写的问题。my.ini 中有属性lower_case_table_names 能够更改此默认值,要严格区分大小写,将此项的置设置为2,再重启 MySQL 服务便可。
参考:
[mysqld]
lower_case_table_names=2

mysql

然而,该查询在Windows中是能够的。要想避免出现差异,最好采用一致的转换,例如老是用小写建立并引用数据库名和表名。在大多数移植和使用中建议使用该转换。sql

在MySQL中如何在硬盘上保存和使用表名和数据库名由lower_case_tables_name系统变量肯定,能够在启动mysqld 时设置。lower_case_tables_name能够采用下面的任一值:数据库

spa

含义继承

0索引

使用CREATE TABLE或CREATE DATABASE语句指定的大写和小写在硬盘上保存表名和数据库名。名称比较对大小写敏感。在Unix系统中的默认设置即如此。请注意若是在大小写不敏感的文件系统上用--lower-case-table-names=0强制设为0,而且使用不一样的大小写访问MyISAM表名,会致使索引破坏。table

1变量

表名在硬盘上以小写保存,名称比较对大小写敏感。MySQL将全部表名转换为小写以便存储和查找。该行为也适合数据库名和表的别名。该值为Windows和Mac OS X系统中的默认值。引用

2数据

表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写进行保存,但MySQL将它们转换为小写以便查找。名称比较对大小写敏感。注释:  在对大小写不敏感的文件系统上适用! InnoDB表名以小写保存,例如lower_case_tables_name=1。

相关文章
相关标签/搜索