MySQL文档[1]解释了在所有平台上使用区分大小写的表名的可能性(通过在Unix上设置 lower_case_table_names=0
和在Windows上设置 lower_case_table_names=2
),但有一个例外:
例外:如果您正在使用InnoDB表而您正试图避免这些数据传输问题,则应在所有平台上将lower_case_table_names设置为1以强制将名称转换为小写 .
我的问题是:
-
为什么建议为InnoDB使用小写表名?
-
如果将InnoDB表设置为区分大小写,会发生什么?
[1] https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html
1 回答
如果操作系统(如Windows)无法区分
abc.frm
和ABC.frm
,则这两个表不能共存 . 同样对于数据库 .此外,如果你马虎虎虎,并说两者
关于什么表是期望的,可能会有混淆 . 因此,该设置也适用于查询中的使用 .