默认情况下,表别名在Unix上区分大小写,但在Windows或macOS上不是这样。以下语句在Unix上不起作用,因为它引用别名as a和as A:

mysql> SELECT col_name FROM tbl_name AS a
-> WHERE a.col_name = 1 OR A.col_name = 2;

但是,Windows上允许使用相同的语句。为避免此类差异导致的问题,最好采用一致的约定,例如始终使用小写名称创建和引用数据库和表。建议使用此约定,以实现最大的便携性和易用性。

表和数据库名称如何存储在磁盘上并在 MySQL 中使用受 lower_case_table_names 系统变量的影响,您可以在启动 mysqld 时设置该 变量 。 lower_case_table_names 可以采用下表中显示的值。这个变量不不影响触发标识符的情况下的灵敏度。在Unix上,默认值为 lower_case_table_names 为 0 ,在 Windows 上,默认值为 1,在 macOS 上,默认值为 2 。


含义
0 表和数据库名称使用CREATE TABLEor CREATE DATABASE语句中指定的lettercase存储在磁盘上。名称比较区分大小写。你应该不会,如果你有不区分大小写的文件名(如Windows或Mac系统)的系统上运行MySQL这个变量设置为0。如果使用--lower-case-table-names=0 不区分大小写的文件系统强制此变量为0 并MyISAM使用不同的字母表访问 表名,则可能导致索引损坏。
1 表名以小写形式存储在磁盘上,名称比较不区分大小写。MySQL在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。
2 表和数据库名称使用CREATE TABLEor CREATE DATABASE语句中指定的lettercase存储在磁盘上,但MySQL在查找时将它们转换为小写。名称比较不区分大小写。这仅适用于不区分大小写的文件系统! InnoDB表名和视图名以小写形式存储,如下所示 lower_case_table_names=1。

如果您只在一个平台上使用MySQL,则通常不必将lower_case_table_names变量从其默认值更改 。但是,如果要在文件系统区分大小写不同的平台之间传输表,则可能会遇到困难。例如,在Unix上,你可以有两个不同的表名为my_table和 MY_TABLE,但在Windows这两个名字都被认为是相同的。为避免数据库或表名字母的数据传输问题,您有两种选择:

lower_case_table_names=1 在所有系统上 使用。这样做的主要缺点是,当您使用 SHOW TABLES 或时 SHOW DATABASES,您看不到原始字母中的名称。

使用 lower_case_table_names=0 在 Unix 和 lower_case_table_names=2Windows 上。这样可以保留数据库和表名的字母大小写。这样做的缺点是您必须确保您的语句始终在 Windows 上使用正确的字母大小引用您的数据库和表名。如果将语句转移到 Unix,那么 lettercase 很重要,如果 lettercase 不正确,它们就不起作用。

  • 例外:如果您正在使用 InnoDB 表并且您试图避免这些数据传输问题,则应 lower_case_table_names 在所有平台上将其设置为 1 以强制将名称转换为小写。

如果您计划lower_case_table_names在Unix上将系统变量设置 为1,则必须先将旧数据库和表名转换为小写,然后再停止 mysqld并使用新变量设置重新启动它。要对单个表执行此操作,请使用 RENAME TABLE:

windows下mysql区分大小写敏感问题的更多相关文章

  1. 【已解决】Windows下 MySQL大小写敏感 解决方案及分析

    Windows下 MySQL大小写敏感配置 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-3-27 最近在window ...

  2. MySQL 5.7 Command Line Client输入密码后闪退和windows下mysql忘记root密码的解决办法

    MySQL 5.7 Command Line Client输入密码后闪退的问题: 问题分析: 1.查看mysql command line client默认执行的一些参数.方法:开始->所有程序 ...

  3. coreseek实战(二):windows下mysql数据源部分配置说明

    coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...

  4. Windows下mysql自动备份的最佳方案

    网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...

  5. Windows下mysql忘记密码的解决方法

    Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...

  6. Windows下MYSQL自动备份批处理

    windows下MYSQL自动备份批处理 2011-05-04 09:16:45|  分类: mysql|举报|字号 订阅     按系统时间进行备份 注意mysql安装路径中如果有空格.就要把,.b ...

  7. windows下mysql和linux下mysql主从配置

    1. linux下mysql安装版本5.6   windows下mysql版本5.7  不要问我为什么版本不一致  就是想这么搞 2. linux为主服务器   windows为从服务器 3.找到li ...

  8. Windows 下 MySql 5.7.20安装及data和my.ini文件的配置(转)

    Windows 下 MySql 5.7.20安装及data和my.ini文件的配置     本文通过图文并茂的形式给大家介绍了MySql 5.7.20安装及data和my.ini文件的配置方法. my ...

  9. windows下mysql配置

    windows下mysql配置   忙活了大半天,总算配置好了,本文献给windows下没试用过Mysql的小白,勿喷 http://blog.csdn.net/z1074907546/article ...

随机推荐

  1. 【PHP手册】 PHP debug_backtrace() 函数

    定义和用法 PHP debug_backtrace() 函数生成一个 backtrace(回溯信息). 该函数返回一个关联数组.下面是可能返回的元素: 名称 类型 描述 function 字符串 当前 ...

  2. 【jQuery】jquery中 使用$('#parentUid').attr(parentUid);报错jquery-1.11.3.min.js:5 Uncaught TypeError: Cannot read property 'nodeType' of undefined

    jquery中 使用$('#parentUid').attr(parentUid);报错jquery-1.11.3.min.js:5 Uncaught TypeError: Cannot read p ...

  3. wpf datagrid performance

    http://stackoverflow.com/questions/1704512/wpf-toolkit-datagrid-scrolling-performance-problems-why h ...

  4. final修饰符的三种使用场景

    final有三种使用场景,各自是修饰变量.方法和类.不管哪种修饰.一旦声明为final类型.你将不能改变这个引用了,编译器会检查代码,假设你试图再次初始化,编译器会报错.以下我来详细说说每一种修饰场景 ...

  5. nmcli日常用法

    一.nmcli日常用法nmcli dev status //查看系统现有网络设备的连接状态nmcli conn show //查看已有连接nmcli conn delete UUID1 UUID2 U ...

  6. gcc static静态编译选项提示错误:/usr/lib/ld:cannot find -lc

    在学习gcc静态库动态库编译的时候选用静态库编译时出错显示:/usr/lib/ld:cannot find -lc 百度:/usr/lib/ld:cannot find -lc多处给的解决方案为: 然 ...

  7. ES6/ES2015核心内容(下)

    import export 这两个家伙对应的就是es6自己的module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小工 ...

  8. 阿里云RDS(云数据库)之产品简介

    参考阿里产品文档:https://docs.aliyun.com/?spm=5176.100054.3.1.ywnrMX#/pub/rds/product-introduce/overview& ...

  9. 一起來玩鳥 Starling Framework(8)BitmapFont

    所謂BitmapFont,就是事先將我們會用到的字型,會用到的字,輸出成一張圖片,類似Sprite sheet,以及一個xml格式的Data file,然後我們一次將這文字圖片轉成Texture,up ...

  10. xunsearch使用namespace后bug修复

    xunsearch在使用了namespace后会出现不能正常使用 错误例如以下: Fatal error: Uncaught [vendors\xunsearch\lib\XSException] . ...