设置mysql数据库表名不区分大小写

最近由于一个新的业务模块,所以使用到到msyql数据库。mysql

我对接的技术开发中心的同事由于对表名、字段名大小写使用特别不规范,查询的时候 一个表名很常常大写-小写-大写,所以让我将数据库设置为对表名不区分大小写。sql

mysql数据库的表的字段名是不区分大小写的,数据库

设置表名不区分,能够在 数据库的配置文件中添加一行:工具

lower_case_table_names=1测试

1:是表示不区分大小写;spa

0:表示表名区分大小写;开发

修改配置后须要重启数据库,设置才能生效。table

要是设置正常知足需求,修改设置以前得确保数据库里的表名都已是小写的了。不然,数据库重启后,以前那些大写的表没法使用了。配置

同时,跟数据库名字的大小写也有关系。im

测试:

首先在区分大小写环境下,创建两个数据库,"iris"  和 "IRIS"。同名的,一个大写,一个小写。

分别建立几张表,有大写表名,有小写的。

数据库修改成 “不区分大小写”,设置生效以后,进入数据库查看库,依旧显示 "iris" 和 "IRIS"。可是,"IRIS"已经只能看不能用了,use IRIS ,命令也报错。固然,此库下面的表也同样,看都看不到了。

 

若是使用的是链接工具,诸如sqlyog等图形化界面的话。

这个时候,切换数据库: use iris,而且向 iris这个库中新建表,表名 ABC 。

再将 数据库设置为“区分大小写”。show databases: 依旧显示,"iris" 和 "IRIS"。而且,查看"IRIS"中全部的表的时候:

show tables:

看到的表也有 ABC;

向表iris.ABC 插入数据,在IRIS库的表下也能看到新增的数据。

其实这个时候,对数据库来讲,IRIS和iris就是同一个了。

可是,查看数据库文件,能够发现 数据库目录 名为IRIS 目录下没有 表ABC.frm 等文件。因此,设置若是再切过来,将看不到 后来新建的表的。