转自:http://www.cnblogs.com/50614090/archive/2011/07/25/2116330.html


MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

  1、数据库名与表名是严格区分大小写的;

  2、表的别名是严格区分大小写的;

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

  4、变量名也是严格区分大小写的;

  MySQL在Windows下都不区分大小写。

  所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在Windows环境下只要对数据库的配置做下改动就行了,具体操作如下:

  在MySQL的配置文件中my.ini [mysqld] 中增加一行

  lower_case_table_names = 1

  参数解释:

  0:区分大小写

  1:不区分大小写

在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。

奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。

要避免这个问题,你最好在定义数据库命名规则的时候就全部采用小写字母加下划线的组合,而不使用任何的大写字母。

或者也可以强制以 -O lower_case_table_names=1 参数启动 mysqld(如果使用 --defaults-file=...\my.cnf 参数来读取指定的配置文件启动 mysqld 的话,你需要在配置文件的 [mysqld] 区段下增加一行 lower_case_table_names=1)。这样MySQL 将在创建与查找时将所有的表名自动转换为小写字符(这个选项缺省地在 Windows 中为 1 ,在 Unix 中为 0。从 MySQL 4.0.2 开始,这个选项同样适用于数据库名)。

当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。

换句话说,如果你希望在数据库里面创建表的时候保留大小写字符状态,则应该把这个参数置0: lower_case_table_names=1 。否则的话你会发现同样的sqldump脚本在不同的操作系统下最终导入的结果不一样(在Windows下所有的大写字符都变成小写了)。


更多相关文章

  1. MySQL数据库root账户的设置和管理
  2. JSON保存在数据库中并使用JQuery加载
  3. Linux下mysql数据库root无法登录的情况
  4. 版本5及更高版本中MySQL数据库的最大大小是多少?
  5. 数据库语言分类DDL,DCL,DML
  6. MySql_数据库触发器的使用
  7. mysql 数据库中表不同 但是列名相同,怎么复制列名一样的数据
  8. 常见几种数据库中自增字段的设置方法(转)
  9. 尝试将纬度和经度发布到数据库时,Android JSON解析错误

随机推荐

  1. 详解Android实现XML解析技术(图)
  2. XML中处理指令的代码详解
  3. 详细介绍XML Web Service图文代码实例
  4. 详细介绍XML代码编写的编码与验证问题
  5. XSLT语法—在.net中使用XSLT转换xml文档
  6. XML中的DTD文档类型定义详细介绍
  7. XmlSerializer 对象的Xml序列化和反序列
  8. XML编程中的模式定义XSD示例代码详解
  9. XML中的树形结构与DOM文档对象模型的示例
  10. XPath语法: 在C#中使用XPath示例的具体代