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

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

如果我有名为categoryCategory表,他们是不同的?

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

换句话说,如果您计划在Linux机器上进行部署,那么最好也是在基于Linux的MySQL上testing您的SQL,或者在制作时为神秘的“表未find”错误做好准备。 虚拟机现在很便宜。

字段名称不区分大小写。

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

从MySQL 文档 :

数据库和表名在Windows中不区分大小写,在大多数Unix中区分大小写。 一个明显的例外是Mac OS X,它是基于Unix的,但使用不区分大小写的默认文件系统types(HFS +)。

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

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

你可能会发现这是必要的阅读。 在MySQL中设置区分大小写是可能的,但在多个环境中工作时,这只是一个问题。

奇怪的是,即使在Windows上,MySQL Workbench 似乎也是大小写敏感的。

我们只是试图改变一个SELECT语句的结果,但是Workbench没有让我们抱怨我们的查询没有包含表的主键(它是这样做的,但是是小写的),所以结果是只读的。 在正确的情况下(ID而不是id)运行相同的查询将允许我们按预期编辑结果。

不,表名和行名不区分大小写,甚至SQL语句都不是。 所以,你们举例说的名字是一样的
编辑:这取决于服务器整理。 所以你必须检查设置。 与操作系统无关。

Interesting Posts