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

shi*_*hin 64 mysql collation case-sensitive

如果我有一个名为列名category_idCategory_Id,它们有什么不同?

如果我已经叫表categoryCategory,它们有什么不同?

Sev*_*yev 75

在Unix上,表名区分大小写.在Windows上,它们不是.好玩,不是吗?有点像他们各自的文件系统.你认为这是巧合吗?

换句话说,如果您计划在Linux机器上进行部署,那么也可以针对基于Linux的MySQL更好地测试您的SQL,或者在生产时准备好应对神秘的"未找到表"错误.VM现在很便宜.

无论如何,字段名称都不区分大小写.

编辑:我们在谈论MySQL 服务器机器上的操作系统,而不是客户端.

  • 每个表(***,无论什么引擎***)都有一个相应的`.frm`文件,用于存储数据结构.由于表和文件的名称相同,因此表的区分大小写完全取决于服务器上文件系统的区分大小写. (14认同)
  • 它不是基于表格类型 (4认同)

小智 20

从MySQL 文档:

数据库和表名在Windows中不区分大小写,在大多数Unix中区分大小写.一个值得注意的例外是Mac OS X,它基于Unix,但使用不区分大小写的默认文件系统类型(HFS +).

列和索引名称在任何平台上都不区分大小写,列别名也不区分大小写.


Pek*_*ica 5

对于数据库和表名,它取决于底层操作系统.见8.2.2.标识符区分大小写