windows下mysql区分大小写敏感问题
默认情况下,表别名在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:
- 翻译自 mysql 官网,原文链接:https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html
windows下mysql区分大小写敏感问题的更多相关文章
- 【已解决】Windows下 MySQL大小写敏感 解决方案及分析
Windows下 MySQL大小写敏感配置 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-3-27 最近在window ...
- MySQL 5.7 Command Line Client输入密码后闪退和windows下mysql忘记root密码的解决办法
MySQL 5.7 Command Line Client输入密码后闪退的问题: 问题分析: 1.查看mysql command line client默认执行的一些参数.方法:开始->所有程序 ...
- coreseek实战(二):windows下mysql数据源部分配置说明
coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...
- Windows下mysql自动备份的最佳方案
网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...
- Windows下mysql忘记密码的解决方法
Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...
- Windows下MYSQL自动备份批处理
windows下MYSQL自动备份批处理 2011-05-04 09:16:45| 分类: mysql|举报|字号 订阅 按系统时间进行备份 注意mysql安装路径中如果有空格.就要把,.b ...
- windows下mysql和linux下mysql主从配置
1. linux下mysql安装版本5.6 windows下mysql版本5.7 不要问我为什么版本不一致 就是想这么搞 2. linux为主服务器 windows为从服务器 3.找到li ...
- Windows 下 MySql 5.7.20安装及data和my.ini文件的配置(转)
Windows 下 MySql 5.7.20安装及data和my.ini文件的配置 本文通过图文并茂的形式给大家介绍了MySql 5.7.20安装及data和my.ini文件的配置方法. my ...
- windows下mysql配置
windows下mysql配置 忙活了大半天,总算配置好了,本文献给windows下没试用过Mysql的小白,勿喷 http://blog.csdn.net/z1074907546/article ...
随机推荐
- 【PHP手册】 PHP debug_backtrace() 函数
定义和用法 PHP debug_backtrace() 函数生成一个 backtrace(回溯信息). 该函数返回一个关联数组.下面是可能返回的元素: 名称 类型 描述 function 字符串 当前 ...
- 【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 ...
- wpf datagrid performance
http://stackoverflow.com/questions/1704512/wpf-toolkit-datagrid-scrolling-performance-problems-why h ...
- final修饰符的三种使用场景
final有三种使用场景,各自是修饰变量.方法和类.不管哪种修饰.一旦声明为final类型.你将不能改变这个引用了,编译器会检查代码,假设你试图再次初始化,编译器会报错.以下我来详细说说每一种修饰场景 ...
- nmcli日常用法
一.nmcli日常用法nmcli dev status //查看系统现有网络设备的连接状态nmcli conn show //查看已有连接nmcli conn delete UUID1 UUID2 U ...
- gcc static静态编译选项提示错误:/usr/lib/ld:cannot find -lc
在学习gcc静态库动态库编译的时候选用静态库编译时出错显示:/usr/lib/ld:cannot find -lc 百度:/usr/lib/ld:cannot find -lc多处给的解决方案为: 然 ...
- ES6/ES2015核心内容(下)
import export 这两个家伙对应的就是es6自己的module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小工 ...
- 阿里云RDS(云数据库)之产品简介
参考阿里产品文档:https://docs.aliyun.com/?spm=5176.100054.3.1.ywnrMX#/pub/rds/product-introduce/overview& ...
- 一起來玩鳥 Starling Framework(8)BitmapFont
所謂BitmapFont,就是事先將我們會用到的字型,會用到的字,輸出成一張圖片,類似Sprite sheet,以及一個xml格式的Data file,然後我們一次將這文字圖片轉成Texture,up ...
- xunsearch使用namespace后bug修复
xunsearch在使用了namespace后会出现不能正常使用 错误例如以下: Fatal error: Uncaught [vendors\xunsearch\lib\XSException] . ...