MySQL中的表名是否区分大小写?

MySQL中的表名是否区分大小写?

在我的Windows开发机器上,我所拥有的代码能够查询我的表,这些表看起来都是小写的。 当我部署到我们的数据中心的testing服务器时,表名似乎以大写字母开头。

我们使用的服务器都在Ubuntu上。

一般来说:

数据库和表名在Windows中不区分大小写,在大多数Unix中区分大小写。

在MySQL中,数据库对应于数据目录中的目录。 数据库中的每个表对应于数据库目录中的至less一个文件。 因此,底层操作系统的区分大小写在数据库和表名的区分大小写的情况下起作用。

可以使用系统variableslower_case_table_namesconfiguration表名如何存储在磁盘上。 (在[mysqld]下的my.cnfconfiguration中)

请阅读10.2.2标识符区分大小写以获取更多信息。

数据库和表名在Windows中不区分大小写,并且在大多数Unix或Linux中都区分大小写。

要解决该问题,请将lower_case_table_names设置为1

的lower_case_table_names = 1

这将使你所有的表都小写,不pipe你怎么写

MySQL中的表名是文件系统条目,因此如果底层文件系统是不区分大小写的。

它依赖于lower_case_table_names系统variables:

 show variables where Variable_name='lower_case_table_names' 

有三个可能的值:

  • 0 – 在CREATE TABLECREATE DATABASE语句中指定的字母。 名称比较区分大小写。
  • 1 – 表名在磁盘上以小写forms存储,名称比较不区分大小写。
  • 2 – 在CREATE TABLECREATE DATABASE语句中指定的字母,但是MySQL在查找时将它们转换为小写。 名称比较不区分大小写。

文档