必胜高考网 > 计算机类 > 计算机等级 > 资讯 >

MySQL数据库中名和表名的大小写敏感性问题

时间: 家辉2 资讯

  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

56045