zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL数据库表大小写不敏感处理,看完之后,大部分程序员收藏了

2023-03-14 22:23:41 时间

MySQL大小写敏感的控制

mysql是通过lower_case_table_names参数来控制大小写敏感的

1:参数含义

lower_case_table_names: 此参数不可以动态修改,必须重启数据库

lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写

lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的

lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的

2 大小写区分规则

linux下:

数据库名与表名是严格区分大小写的;

表的别名是严格区分大小写的;

列名与列的别名在所有的情况下均是忽略大小写的;

变量名也是严格区分大小写的;

windows下:

​ 都不区分大小写

Mac OS下(非UFS卷):

​ 都不区分大小写

案列:

数据库中存在edu_website_images表

select * from edu_website_images

 

通过大写查询报错不存在

select * from EDU_WEBSITE_IMAGES

 

如何处理?

配置mysql配置文件

vi /etc/my.cnf 加入一行lower_case_table_names = 1

 

 

  1. //重启mysqlservice mysql restart 

然后

 

  1. show variables like '%lower%'; 

 

有可能结果是上面的没改过来...

我们把数据库导出,重新创建一下数据库结果就正确了