Rumah >pangkalan data >tutorial mysql >MySQL 的大小写敏感问题_MySQL
昨晚刚刚被一个课程大作业坑了,特地写一篇博客来记录一下。提问: MySQL 是大小写敏感的么(包括关键字和标识符)?刚上过数据库系统原理课的好学生们一定会记得这句话:“ SQL 是大小写不敏感的”。而有过一些实际开发经验的人可能会说:“表名是大小写敏感的,其他不是。”很遗憾,两个答案都是错的。
Short version: it isimplementation dependent.
对于 MySQL 来说,所有的关键字都遵循 SQL 标准,大小写不敏感,而表名是否敏感则依赖于一个叫做lower_case_table_names
的设置项,它的默认值根据操作系统而不同,具体如下(文档):
所以,当我昨晚从(使用 Windows 的)队友手中接过一个数据库操作不在意大小写的代码时,虽然浑身不舒服,但回想起课上说过的“ SQL 大小写不敏感”(虽然我从没有试过非关键字究竟是不是大小写敏感的),就也没多想。可一跑起来却全是数据库错误,愣是过了好一会才终于怀疑起大小写的问题来……