MySQL对大小写敏感吗.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MySQL对大小写敏感吗 之前看过阿里巴巴Java开发手册,在MySql建表规约里有看到: 【强制】表名、字段名必需使用小写字母或数字 , 禁止消灭数字开头,禁止两个下划线两头只 消灭数字。数据库字段名的修改代价很大,由于无法进行预发布,所以字段名称需要慎重考虑。 说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因而,数据库名、 表名、字段名,都不允许消灭任何大写字母,避开节外生枝。 正例:aliyun _ admin , rdc _ config , level 3_ name 反例:AliyunAdmin , rdcConfig , level 3 name 假如没有真正遇到过类似的问题,有时候干巴巴的看这些规约体会不深,理解起来似懂非懂,并且也只是死记硬背而已。 1 一个表字母大小故事 最近本人在鼓捣一个项目玩玩,在本人本机上开发和测试过程中一直没有问题,但是部署到Linux服务器上后,发觉有报错,日志信息或许是: MySQLSyntaxErrorException:?Table?kytu.tb_sutyHo?doesnt?exist 消灭了问题,有点郁闷,本地开发好好的,怎样部署服务器就不行了。有鬼……不过莫慌。看着错误提示很明显,不就是tb_sutyHo?表不存在吗! ①于是我不慌不忙打开nv(navicat),查看这个表在不在,一看还真在,数据库中显示的tb_sutyho?,不过h是小写; ②查看代码发觉代码中还真把表名写成tb_sutyHo?,就一个h写成大写H了。 问题找到了,原来是不当心写SQL的时候没有写对表名,改一下表名就搞定了,功能也一切正常了。一般情况下故事到这里也就应当结束了?问题找到了,也修复了,万事大吉了,稍后就可以吃鸡了。 对于不会玩吃鸡的我,到这里并没有结束,找到问题和处理问题的确很重要,但是找到问题消灭的根源更重要,这样就能在下次规避此类问题,作为一个程序员不要两次掉入一个坑里。 我在想这个问题,本地Window环境怎样就一直没有消灭这个报错提示呢?非要等我部署服务器才消灭,这到底是什么问题?(假如你对Mysql大小敏感很了解,以下内容可以跳过….) 于是就利用搜索引擎,发觉Mysql中把握数据库名和表名的大小写敏感由参数lower_case_table_names把握。 在本机Window环境查看如下: mysql show variables like %case%; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | lower_case_file_system | ON | | lower_case_table_names | 1 | +------------------------+-------+ 在Linux服务器查看如下: mysql show variables like %case%; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | lower_case_file_system | OFF | | lower_case_table_names | 0 | +------------------------+-------+ 从上面的结果已经可以看出不同了,然而对这两个参数还没有感觉,不晓得具体是什么意思。 在引见lower_case_table_names的时候,顺便也说一下lower_case_file_system。 lowercasefile_system 此变量描述数据名目所在的文件系统上文件名的区分大小写。OFF表示文件名区分大小写,ON表示它们不区分大小写。此变量是只读的,由于它反映了文件系统属性并设置它对文件系统没有影响。 lowercasetable_names 该参数为静态,可设置为0、1、2。 0 --大小写敏感。(Unix,Linux默认)?创建的库表将原样保存在磁盘上。如create database TeSt;将会创建一个TeSt的名目,create table AbCCC …将会原样生成AbCCC.frm。SQL语句也会原样解析。 1 --大小写不敏感。(Windows默认)?创建的库表时,MySQL将全部的库表名转换成小写存储在磁盘上。SQL语句同样会将库表名转换成小写。如需要查询以前创建的Testtable(生成Testtable.frm文件)

文档评论(0)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档