`
cppmule
  • 浏览: 436252 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

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

分享到:
评论

相关推荐

    Linux系统MySQL忘记密码,重置密码,忽略表名、列名大小写的方法

    介绍了Linux系统MySQL忘记密码,重置密码,忽略表名、列名大小写的方法,需要的朋友可以参考下

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者sybase, sybase数据库,不区分大小写(暂未测试) -url 数据库连接的url.默认空字符串 如果有url参数,则-i-p-s-dn参数全无效。 如果没有url参数...

    MYSQL必知必会读书笔记第四章之检索数据

    MySQL是一种开放源代码的关系...注意:SQL语句和大小写 请注意,SQL语句不区分大小写,因此select和SELECT是相同的。同样,写成Select也没有关系。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列名和表名使用

    EJB3.0 实例教程 -- 切片2

    6.8.1 大小写敏感性(Case Sensitivity) ....77 6.8.2 排序(order by) .......77 6.8.3 查询部分属性.......78 6.8.4 查询中使用构造器(Constructor)..78 6.8.5 聚合查询(Aggregation).......80 6.8.6 关联(join) 82 ...

    POJOGenerator v1.3.3 Install(可视化POJO代码生成器最终版)

    7、目前1.3.3版与1.3版差异不大,仅修改了POJO类名与成员变量名的大小写处理策略。 即目标数据库服务器为Oracle时,才将表名除首字母外全部小写处理成POJO类名,同理, 成员变量名也只在Oracle数据库情况下才全小写...

    2009达内SQL学习笔记

    大小写不敏感,即不区分大小写。提倡关键字大写,便于阅读和调式。 “!”在SQL环境下执行Unix命令。 SQL语句是由简单的英语单词构成;这些英语单词称为关键字/保留字,不做它用。SQL由多个关键字构成。 SQL语句...

    EJB3.0 实例教程 -- 切片1

    6.8.1 大小写敏感性(Case Sensitivity) ....77 6.8.2 排序(order by) .......77 6.8.3 查询部分属性.......78 6.8.4 查询中使用构造器(Constructor)..78 6.8.5 聚合查询(Aggregation).......80 6.8.6 关联(join) 82 ...

    jpivot学习总结.doc

    好比是一张部门表,在一张表里表现部门的上下级关系,一个是主键,肯定还有一个字段为连接到该主键的外键的列名,这里的 parentColumn 指的就是这个列名。 nullParentValue 如果当前的 Level 是有上下级关系(设置...

    SQL培训第一期

    关系模型的参照完整性可以通过在create table中用foreign key (<外键>) references <被参照表名> (<与外键对应的主键名>)进行约束定义。 1.4.3 用户定义完整心 在create table语句中可以根据应用要求,定义属性以及...

    EJB3.0实例教程

    6.2.1 MySql数据源的配置........................................................................................................................................37 6.2.2 Ms Sql Server2000数据源的配置......

Global site tag (gtag.js) - Google Analytics