<b>Mysql数据库名和表名的大小写敏感性问题</b>[MySQL防范]
本文“<b>Mysql数据库名和表名的大小写敏感性问题</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在 MySQL 中,数据库和表对应于那些目录下的目录和文件.因而,操作系统的敏感性决意数据库和表命名的大小写敏感.这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大大都范例的 Unix 系统中是大小写敏感的.一个特例是 Mac OS X,当缺省的 HFS+ 文件系统利用时.但是 Mac OS X 还支持 UFS 卷,那些在 Mac OS X 是大小写敏感的就如他们在任一 Unix 上一样.查看章节 1.8.3 MySQL 对 ANSI SQL92 的扩大.
注意:固然在 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
以上是“<b>Mysql数据库名和表名的大小写敏感性问题</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |