MySQL建议使用InnoDB的小写表名

时间:2018-02-15 12:10:11

标签: mysql windows innodb case-sensitive

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 个答案:

答案 0 :(得分:1)

CREATE TABLE abc (...); -- creates file `abc.frm`
CREATE TABLE ABC (...); -- creates file `ABC.frm`

如果操作系统(如Windows)不区分abc.frmABC.frm,则这两个表不能共存。同样适用于数据库。

另外,如果你马虎而且说两个

SELECT ... FROM abc ...;
SELECT ... FROM Abc ...;

关于什么表需要,可能会有混淆。因此,该设置也适用于查询。