在MySQL中列和表名是否区分大小写?
如果我有一个名为category_id
和Category_Id
的列名,它们是不同的?
如果我有名为category
和Category
表,他们是不同的?
在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语句都不是。 所以,你们举例说的名字是一样的
编辑:这取决于服务器整理。 所以你必须检查设置。 与操作系统无关。