• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL 的大小写敏感问题_MySQL

mysql 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

昨晚刚刚被一个课程大作业坑了,特地写一篇博客来记录一下。提问: MySQL 是大小写敏感的么(包括关键字和标识符)?刚上过数据库系统原理课的好学生们一定会记得这句话:“ SQL 是大小写不敏感的”。而有过一些实际开发经验的人可能会说:“表名是大小写敏感的,其他不是。”很遗憾,两个答案都是错的。

Short version: i

本文来源gao!daima.com搞$代!码#网#

t isimplementation dependent.

对于 MySQL 来说,所有的关键字都遵循 SQL 标准,大小写不敏感,而表名是否敏感则依赖于一个叫做lower_case_table_names的设置项,它的默认值根据操作系统而不同,具体如下(文档):

  • Windows:该值默认为1,表名在存储、查找过程中都被转化为小写,因而是完全大小写不敏感的。这与 Windows 的文件系统有关,事实上,你无法在一个大小写无关的文件系统上强制 MySQL 大小写敏感。
  • *nix:该值默认为0,表名在存储、查找过程都严格遵照给定的大小写,即是完全敏感的。
  • Mac OSX:该值默认为2,表名在存储时保留大小写,但在比对时全部转化为小写。这和 Mac OSX 的文件系统惯例一致。

所以,当我昨晚从(使用 Windows 的)队友手中接过一个数据库操作不在意大小写的代码时,虽然浑身不舒服,但回想起课上说过的“ SQL 大小写不敏感”(虽然我从没有试过非关键字究竟是不是大小写敏感的),就也没多想。可一跑起来却全是数据库错误,愣是过了好一会才终于怀疑起大小写的问题来……


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL 的大小写敏感问题_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址