最后更新于

MySQL中lower_case_table_names参数的用途


在MySQL中lower_case_table_names默认值为0,即lower_case_table_names=0,表示表名是严格区分大小写的。而当lower_case_table_names设置为1时,表示所有SQL语句都将被转化为小写后再执行。

⚙️ 参数值说明

  • lower_case_table_names=0:表名严格区分大小写(默认值)
  • lower_case_table_names=1:表名转换为小写存储,查询时不区分大小写

🔍 参数值为0的情况

默认在lower_case_table_names=0的情况下,表名是严格区分大小写的。

lower_case_table_names=0的执行情况

🔄 参数值为1的情况

修改lower_case_table_names=1后,发现原表t2,在参数修改后,通过t2和T2都可以访问,满足需求。

但是原表T1,在参数修改后,通过t1和T1都无法访问,细看报错可以看到无论我们传入T1还是t1,都是按照小写的t1来解析。

lower_case_table_names=1的执行情况

📝 创建新表的行为

如果此时应用再重新创建T1表,就会被存储为小写的t1:

修改lower_case_table_names=1后创建表

⚠️ 注意事项

修改此参数需要重启MySQL服务,且建议在初始化数据库时就确定好此参数的值,避免后期修改导致的兼容性问题。