社区编辑申请
注册/登录
Mysql数据库名和表名的大小写敏感性问题
数据库 MySQL
Mysql数据库因其速度、可靠性和适应性受到广大用户的好评,虽然Mysql数据库功能性未必强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。本文将为大家介绍Mysql数据库名和表名的大小写敏感性问题。

导读:一直以来,Mysql数据库名表名的大小写都是个敏感的问题,困扰着Mysql数据库管理员。在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。一个特例是 Mac OS X,当缺省的 HFS+ 文件系统使用时。然而 Mac OS X 还支持 UFS 卷,那些在 Mac OS X 是大小写敏感的就如他们在任一 Unix 上一样。

注意:尽管在 Windows 中数据库与表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表。下面的查询将不能工作,因为它以 my_table 和 MY_TABLE 引用一个表:

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

列名与列的别名在所有的情况下均是忽略大小写的。

表的别名是区分大小写的。下面的查询将不能工作,因为它用 a 和 A 引用别名:

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

如果记忆数据库和表名的字母大小写有困难,建议采用一个一致一约定,例如总是以小写字母创建数据库和表。

避免这个问题的另一个办法就是以 -O lower_case_table_names=1 参数启动 mysqld。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。

如果 lower_case_table_names 为 1 ,MySQL 将在存储与查找时将所有的表名转换为小写字线。(从 MySQL 4.0.2 开始,这个选项同样适用于数据库名。) 注意,当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。

$ pwd

/data1/etl/aiinsight/ScheduleServer/mysql/support-files

$ ./mysql.server stop

$ pwd

/data1/etl/aiinsight/ScheduleServer/mysql/bin

./mysqld_safe --lower_case_table_names

方法2:修改my.cnf配置文件

在[mysqld]节下加入

lower_case_table_names=1

这里就为大家介绍这两种Mysql数据库名和表名敏感的问题,如果大家有更好的方法,欢迎拿出来与大家一起分享。

【编辑推荐】

  1. 探寻MySQL数据库临时文件储存位置
  2. 不用知道SQL Server表名就可以删除该表以外的所有表
  3. MySQL数据库在众多表中对表名的查询
责任编辑:迎迎 来源: 赛迪网
相关推荐

2010-06-07 13:00:34

MySQL数据库

2017-06-12 16:10:05

2010-11-23 13:42:18

mysql数据库大小写

2021-06-04 10:30:41

2010-05-11 13:25:18

Mysql大小写

2010-04-22 12:37:42

Oracle移植

2019-09-23 20:00:34

2010-04-21 10:04:33

Oracle移植

2010-04-23 10:30:17

Oracle移植

2010-04-14 10:41:40

Oracle移植

2010-04-30 09:52:07

Oracle移植

2021-06-15 09:39:45

2010-11-25 16:09:58

mysql查询大小写

同话题下的热门内容

推荐几款好用的MySQL开源客户端,建议收藏MySQL性能调优,应该掌握这一个工具!!!不同数据库存储引擎技术的优劣势分析MySQL源码解析之执行计划

编辑推荐

MySQL集群搭建详解如果对MySQL还停留在这个印象,就out了防止服务器宕机时MySQL数据丢失的几种方案MySQL innodb引擎备份工具XtraBackup之二(数据库全备)MySQL优化: Slave延迟很大的优化方法总结
我收藏的内容
点赞
收藏

51CTO技术栈公众号