zoukankan      html  css  js  c++  java
  • mysql踩坑(一)-大小写规则

    mysql大小写

    在实际的项目中,大家或多或少都会遇到过mysql数据库大小写的问题。下面,博主将简单的介绍一下mysql数据库的大小写问题。

    sql关键字和函数名

    在mysql数据库中,sql关键字和大小写 是不区分大小写的。下面语句的俩种写法,mysql都能够正常的执行。

    /*全小写*/
    select now();
    
    /*全大写*/
    SELECT NOW():
    

    数据库名和表名

    博主在一次数据库的迁移时,就碰到了数据库表名大小写的问题。在windows服务器上运行好好的应用,在mysql数据库迁移到linux服务器上后,就出现了表不存在的异常。后面经过排查得知,mysql数据库名和表名与操作系统是否区分大小写有关系

    windows系统

    在windows系统下,mysql数据库不区分大小写。也就是说你的select语句中的表名是全大写的,而实际数据库的表名是全小写的,也能够查询到数据。

    查询大写的名称ROLE表,能够查询到表数据。

    Windows查询role表

    查询小写的名称ROLE表,能够查询到表数据。

    Windows查询ROLE表

    linux系统

    在linux系统下,mysql数据库区分大小写。如下图所示,查询大写的名称ROLE表,datagrip返回了 表不存在的错误提示。

    Linux查询ROLE表

    而使用全小写的名称role,则能够查询到表数据。

    Linux查询role表

    博主这里使用是docker运行的mysql镜像,配置文件的路径为/etc/mysql/mysql.conf.d/mysqld.cnf,添加如下所示的配置,使的mysql不区分大小写。

    low_case_table_names=1
    

    配置完后,重启mysql服务,这时候再次查看执行结果。

    查看执行结果

    列名和索引名

    在mysql数据库中,不区分列名和索引名的大小写。如下图所示,使用大写和小写的id字段都能够查询到数据。

    不区分列名查询

    如下图所示,使用大写和小写的索引名称都能够正常的查询数据。

    enter description here

    博主微信公众号

  • 相关阅读:
    虚拟机网络配置详解
    linux计划任务记录
    合并图片和加文字
    Linux下配置安装PHP环境
    js无刷新上传图片,服务端有生成缩略图,剪切图片,iphone图片旋转判断功能
    移动端上传图片iphone图片旋转以及服务端处理方法
    编码格式,网上看了资料还是乱码,就试下这个吧
    js 时间格式化 代码
    持续集成,持续交付,持续部署
    CDN(Content Distribution Network)概念
  • 原文地址:https://www.cnblogs.com/chenhaoblog/p/13604727.html
Copyright © 2011-2022 走看看