MySQL--区分表名大小写
============================================================================
在MySQL中,可以通过lower_case_table_names参数来设置是否区分表名大小写问题,参数有效取值为:0,1,2:
0表示,表在文件系统存储的时候,对应的文件名是按建表时指定的大小写存的,MySQL 内部对表名的比较也是区分大小写的;
1表示,表在文件系统存储的时候,对应的文件名都小写的,MySQL 内部对表名的比较是转成小写的,即不区分大小写;
2表示,表在文件系统存储的时候,对应的文件名是按建表时指定的大小写存的,但是 MySQL 内部对表名的比较是转成小写的,即不区分大小写。
0表示,表在文件系统存储的时候,对应的文件名是按建表时指定的大小写存的,MySQL 内部对表名的比较也是区分大小写的;
1表示,表在文件系统存储的时候,对应的文件名都小写的,MySQL 内部对表名的比较是转成小写的,即不区分大小写;
2表示,表在文件系统存储的时候,对应的文件名是按建表时指定的大小写存的,但是 MySQL 内部对表名的比较是转成小写的,即不区分大小写。
由于MySQL中的表和操作系统中的文件对应,而不同操作系统下对文件名的处理不一样,比如在Linux系统下文件名区分大小写,而在Windows系统下不区分大小写,因此在设置lower_case_table_names参数时需要根据操作系统来决定。
当参数设置为0时,适合区分大小写的系统。
当参数设置为1时,适合所有系统。
当参数设置为2时,适合不区分大小写的系统。
当参数设置为1时,适合所有系统。
当参数设置为2时,适合不区分大小写的系统。
修改lower_case_table_names参数可能会导致后续DDL操作失败,需谨慎操作,最好在初始化数据库时就确定好是否需要区分大小写。
https://yq.aliyun.com/articles/50846
https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html?spm=5176.100239.blogcont50846.6.jyqeFt#sysvar_lower_case_table_names