MySQL大写和小写问题

近期在将一个windows的mysql数据库转到linux上时,碰到表找不到问题,详细分析了下后发现原来是大写和小写问题。

?

在 MySQL 中,数据库和表对就于那些文件夹下的文件夹和文件。

因而,操作系统的敏感性决定数据库和表命名的大写和小写敏感。这就意味着数据库和表名在 Windows 中是大写和小写不敏感的,而在大多数类型的 Unix 系统中是大写和小写敏感的。

?

奇怪的是列名与列的别名在全部的情况下均是忽略大写和小写的。而表的别名又是区分大写和小写的。

?

要避免这个问题,你最好在定义数据库命名规则的时候就全部採用小写字母加下划线的组合。而不使用不论什么的大写字母。

?

或者也能够强制以 -O lower_case_table_names=1 參数启动 mysqld(假设使用 --defaults-file=.../my.cnf 參数来读取指定的配置文件启动 mysqld 的话,你须要在配置文件的 [mysqld] 区段下添加一行 lower_case_table_names=1)。这样MySQL 将在创建与查找时将全部的表名自己主动转换为小写字符(这个选项缺省地在 Windows 中为 1 ,在 Unix 中为 0。从 MySQL 4.0.2 開始。这个选项相同适用于数据库名)。

?

当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。

?

换句话说,假设你希望在数据库里面创建表的时候保留大写和小写字符状态,则应该把这个參数置0: lower_case_table_names=1 。否则的话你会发现相同的sqldump脚本在不同的操作系统下终于导入的结果不一样(在Windows下全部的大写字符都变成小写了)。

?

改动/etc/my.cnf

?

[mysqld]

?

lower_case_table_names = 1

?

当中 0:区分大写和小写,1:不区分大写和小写

?

MySQL在Linux下数据库名、表名、列名、别名大写和小写规则是这种:

?

1、数据库名与表名是严格区分大写和小写的。

?

2、表的别名是严格区分大写和小写的;

?

3、列名与列的别名在全部的情况下均是忽略大写和小写的。

?

4、变量名也是严格区分大写和小写的;

?

MySQL在Windows下都不区分大写和小写。

原文地址:https://www.cnblogs.com/mqxnongmin/p/10781617.html

时间: 2024-10-31 01:45:47

MySQL大写和小写问题的相关文章

当JPA遇上MySQL表名全大写+全小写+驼峰+匈牙利四风格

我一直知道的MySQL在Linux上有字段名表名等的大小写问题,于是为了避免这个问题,选择了下划线和全小写,心说虽然咱用的是JPA,只要使用注解写清楚表名和字段名是大写的,不也没事么.例如这样 实际上证明,想象比搬砖生活丰富的多.亲们,我用JPA实现查表操作的时候,Exception跳出来说表不存在,因为表名是全小写的,我还能怎样┑( ̄Д  ̄)┍.接下来,折腾才刚刚开始--不妨看下日志,内心异常的沉重 2019-09-24 17:31:16.407 ERROR 25864 --- [ XNIO-

在小发现SQL字符串比较是不是他们的大写和小写敏感

声明:select  petName from dbo.T_pet order by petName desc 成绩:    petName    An admin A的ascii码小于a,按理说应该在后面. 可是SQL大写和小写不敏感,所以觉得a和A的ascii相同的代码,继续比较下. 版权声明:本文博主原创文章.博客,未经同意不得转载.

C++中字母大写和小写转换实现的优化

C++中字母大写和小写转换实现的优化 write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 在本文中所有以转换为小写为例. 从推荐复用代码的角度来看,用库函数是不错的办法: 方案一: char gc1[53] = "abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ"; void wayOne() { strlwr(gc1); } 长处是使用方便,别人看着也easy理解

[1004] 字符的大写转小写

1004: 字符的大写转小写 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 712  Solved: 205 Description 字符串处理问题是程序设计中要求细心的一个环节,细心和良好的RP是你AC这道题目的关键^_^! 题目的意思很简单,对于每个输入的字符串(长度小于80个字符),对于其中的每一个字符,如果它是大写的英文字母,把它转化为小写输出,如果它是小写的字母,保留原样小写,如果不是字母,则用代替‘*’(星号)并输出即可. Input

c语言代码编程题汇总 :统计字符串中的大写和小写字母的个数

统计字符串中的大写和小写字母的个数 程序代码如下: 1 /* 2 2017年3月6日19:42:21 3 功能:统计字符串中的大写和小写字母的个数 4 */ 5 6 #include "stdio.h" 7 void fun (char *,int *,int *); 8 9 int main (void) 10 { 11 int m = 0,n = 0; 12 int *Pm = &m, *Pn = &n; 13 char s[100]; 14 printf (&qu

Python3基础 字符串 swapcase 英文字母小写变大写 并且 大写变小写

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: myStr='hello WORLD' #大写变小写 并 小写变大写 myNewStr=myStr.swapcase() print(myStr) print(myNewStr) result: ============= RESTART: C:/Users/Administr

查询表数据的时让表内数据全大写、小写、首字母大写、前几位字母大写

select                       Upper(Substring(列名, 1, 1)) + Lower(Substring(列名, 2,LEN(列名))) AS 想显示的列名,        UPPER(列名) AS 想显示的列名,                   Upper(Substring(列名, 1, 6)) + Substring(列名, 7,LEN(列名)) AS 想显示的列名,       LOWER(列名)AS 想显示的列名,             

项目问题总结2:GUID区分大写和小写吗?

问题描写叙述: 近期在做项目的过程中,遇到一个问题,将从基础系统查询出来的课程ID作为參数去考评系统里查询考试信息,却什么也查不出来,调试了半天不知道什么原因. 问题分析: 静下心来思考一下,能够肯定程序代码逻辑以及实现是没有问题的,因此就是数据的问题了.那么数据出问题就应该是数据库的问题了,在进行单步调试的过程中.去检查各个变量以及參数的值,最终找到了问题出在哪里.先来看看两个系统的数据库存储CourseId的数据类型是什么吧,例如以下图: 上图中左边是基础的.右边是考试的.再来看看我的代码是

StirngUtil工具类 之 邮箱注冊 域名不区分大写和小写方法

/** * 传入邮箱域名所有变为小写,然后拼接前缀返回 *<b>Summary: </b> * emailDomainTransform() * @param domain * @return * @throws Exception */ public static String emailDomainTransform(String email) throws Exception{ if(email == null || "".equals(email.tri