mysql区分表名区分大小写吗

这就是危险:Linux默认不区分大小写,但默认值为0,所以要小心不正确的设置。

不信:在Windows上设置“lower_case_table_names=0”或“1 ”就可以了,不要混淆。

不要这样做:执行区分大小写的查询时使用 BINARY,不要直接使用大小写字母。

mysql-查询 大小写&范围

请问mysql数据类型是否区分大小写?

那天我正在调试一个旧项目,发现了一个奇怪的错误。
表名清楚地表明了用户。
结果MySQL直接报错说找不到表。
一开始我以为是打字错误,但是检查了半天配置才发现MySQL在Linux系统上其实是区分大小写的。

你看,我本来想创建一个users表,但是我的手在颤抖,我输入了USERS,连接失败了。
这个东西让我想起了我之前在Windows系统上做的项目。
混合使用大小写字母作为表名是可以的。
我真的不明白为什么 MySQL 在 Linux 和 Windows 之间的行为如此不同。

Linux 默认区分大小写,因此在创建表之前要小心。
要使其在Linux上无法区分,请修改/etc/my.cnf文件,在[mysqld]中添加lower_case_table_names=1 ,然后重新启动服务。
但你必须小心这一点。
更改后,以前的区分大小写表可能会变得混乱,尤其是对于旧项目。

等一下,我刚刚看了手册,上面说如果字段名有_bin后缀,例如email_bin,MySQL将再次开始区分大小写。
这个设计是不是太复杂了?本来我想用后缀来区分编码类型,但最终添加了大小写规则。
如果建表时字段名为email_bin,那么对email_bin以外字段的查询是否也会受到影响?