广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    Mysql数据库名和表名在不同系统下的大小写敏感问题

    2018-09-28 15:13:47 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布
    这就意味着数据库和表名在 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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告