现在的位置: 首页 > 数据库 > 正文

Mysql数据库名和表名的大小写敏感性有哪些问题

2020年05月07日 数据库 ⁄ 共 1162字 ⁄ 字号 评论关闭

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

  Mysql数据库名和表名的大小写敏感性有哪些问题

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

  mysql>SELECT*FROMmy_tableWHEREMY_TABLE.col=1;

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

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

  mysql>SELECTcol_nameFROMtbl_nameASaWHEREa.col_name=1ORA.col_name=2;

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

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

  Mysql数据库名和表名的大小写敏感性有哪些问题

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

  $pwd

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

  $./mysql.serverstop

  $pwd

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

  ./mysqld_safe--lower_case_table_names

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

  在[mysqld]节下加入

  lower_case_table_names=1

  以上就是关于“Mysql数据库名和表名的大小写敏感性有哪些问题”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.