MySQL 数据库大小写的问题
引言
后端开发,会时不时地和数据库打交道,mysql 数据库作为开源数据库,市场占有率相当高,很有研究和学习的价值。
在之前的博客中也提到了 mysql 数据库的一些常用的操作和介绍,在这里聊一聊数据库大小写的问题。mysql 开发过程中有可能会添加外键,遇到问题不妨先看看字段大小写是否匹配。
大小写规则
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的。
MySQL在Windows下都不区分大小写。
所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在 Windows 环境下只要对数据库的配置做下改动就行了,具体操作如下:
在MySQL的配置文件中 my.ini [mysqld] 中增加一行
lower_case_table_names = 1
参数解释:
- 0:区分大小写
- 1:不区分大小写
实例说明
建立 usertable:
create table `usertable`( `id` varchar(32) binary,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
建立 mytable 并使用外键:
create table `mytable`( `id` varchar(32) binary,`uid` varchar(32) binary,PRIMARY KEY (`id`),CONSTRAINT `user_1` FOREIGN KEY (`uid`) REFERENCES `usertable` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果在 mytable 表中,外键关联的时候 usertable 错误写成 “userTable” 或者其它形式,则会关联失败。
总结
由上可以看出大小写对 mysql 有很大的影响。开发过程中,应该尽量按大小写敏感的原则去开发。
开发过程中可以把 lower_case_table_names
的值设为 0,便于控制代码大小写敏感,提高代码的兼容性和严谨性。
参考
https://www.cnblogs.com/50614090/archive/2011/07/25/2116330.html
MySQL 数据库大小写的问题相关推荐
- linux下的mysql数据库大小写问题
最近做一个java项目,开发环境是安装在windows下,使用mysql没有任何问题,部署环境采用linux,用mysqldump把数据库导入linux后程序报找不到数据表,很郁闷,google一番后 ...
- linux下改变Mysql数据库大小写的设置
1,查看大小写参数 show variables like '%table_names' 2,如果lower_case_table_names参数为1,说明不区分大小写了 3,lower_case_t ...
- mysql语句大小写要求_mysql踩坑(一)-大小写规则
mysql大小写 在实际的项目中,大家或多或少都会遇到过mysql数据库大小写的问题.下面,博主将简单的介绍一下mysql数据库的大小写问题. sql关键字和函数名 在mysql数据库中,sql关键字 ...
- 将现有MySQL数据库改为大小写不敏感
用过MySQL的应该都会注意到,默认情况下,Linux下安装的MySQL是大小写敏感的,也就是说Table1和table1可以同时存在.而Windows下的MySQL却是大小写不敏感的,所有表名和数据 ...
- mysql 密码大小写_MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写...
MySQL数据库认证密码有两种方式: 1:MySQL 4.1版本之前是MySQL323加密 2:MySQL 4.1和之后的版本都是MySQLSHA1加密 还有函数:AES_ENCRYPT()加密函数和 ...
- mysql数据库表名大小写敏感_Mysql数据库名和表名的大小写敏感性问题
导读:一直以来,Mysql数据库名和表名的大小写都是个敏感的问题,困扰着Mysql数据库管理员.在 MySQL 中,数据库和表对应于那些目录下的目录和文件.因而,操作系统的敏感性决定数据库和表命名的大 ...
- 0基础学MySQL数据库—从小白到大牛(20)大小写规范、sql_mode的合理设置
文章目录 一.SQL大小写规范 Windows和Linux平台区别 Linux下大小写规则设置 SQL编写建议 二.sql_mode的合理设置 介绍 宽松模式 vs 严格模式 模式查看和设置 一.SQ ...
- MySQL数据库忽略大小写
首先我们需要明白的一点就是: Linux 系统默认情况下MySQL数据库是区分大小写的, Windows系统默认情况下MySQL数据库是不区分大小写的. 1. 查看数据库大小写配置 show vari ...
- mysql 表名批量转大写_(转)mysql数据库表名批量修改大小写
由于不用服务器对mysql的表名的大小写敏感要求不一致,经常在出现线上的数据库down到了本地不能运行的情况,贴出一段代码用来批量修改数据库表名大小写. DELIMITER // DROP PROCE ...
最新文章
- Linux多线程管理: 多线程编程
- nvidia命令不可用linux,在Linux命令行下如何正确配置nVIDIA显卡
- R语言Logistic回归模型亚组分析森林图(forest plot)绘制
- Java提高—对象克隆(复制)/对象属性拷贝
- Android 4.2 通知通过PendingIntent启动Activity失败的问题
- linux 查看cpu_作为高级Java,你应该了解的Linux知识
- 北邮-上机-提交错误解决及一些经验
- 三维数据平滑处理_黑白象片的密度信息 卫星数据处理 遥感制图 三维建模 善图科技...
- js 字符串插入_Vue.js 条件与循环
- Java深入 - servlet和Spring的DispatcherServlet详解
- 首次结算和汇总不一致
- mysql连接池设计_数据库连接池(基于MySQL数据库)
- ajax+++fc,06. 实做AJAX(SEFC)
- 年化收益17.1%!这个看基本面长线炒股的AI有点厉害
- pyodbc linux 乱码,关于python:无法在Linux上安装pyodbc
- IE设置每次打开时都清除缓存
- Forth语言简明教程
- 大学计算机课程教学建议,计算机应用基础课程教学的建议
- 计算机维修技术精解,《显卡维修知识精解——计算机维修技术精解》【价格 目录 书评 正版】_中图网...
- Hive的nvl函数