在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的情况下,表名是严格区分大小写的。
🔄 参数值为1的情况
修改lower_case_table_names=1后,发现原表t2
,在参数修改后,通过t2和T2都可以访问,满足需求。
但是原表T1
,在参数修改后,通过t1和T1都无法访问,细看报错可以看到无论我们传入T1还是t1,都是按照小写的t1来解析。
📝 创建新表的行为
如果此时应用再重新创建T1表,就会被存储为小写的t1:
⚠️ 注意事项
修改此参数需要重启MySQL服务,且建议在初始化数据库时就确定好此参数的值,避免后期修改导致的兼容性问题。