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

最近因为一个新的业务模块,因此使用到到msyql数据库。

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

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

设置表名不区分,可以在 数据库的配置文件中添加一行:

lower_case_table_names=1

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

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

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

要是设置正常满足需求,修改设置之前得确保数据库里的表名都已经是小写的了。否则,数据库重启后,之前那些大写的表无法使用了。

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

测试:

首先在区分大小写环境下,建立两个数据库,"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 等文件。所以,设置如果再切过来,将看不到 后来新建的表的。 

猜你喜欢

转载自my.oschina.net/u/2331578/blog/550665