`

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

 

 

 

分享到:
评论

相关推荐

    PostgreSQL数据库对象名大小写敏感的解决方法

    MySQL提供了一个系统变量`lower_case_table_names`,允许用户根据需求调整表名和数据库名的大小写敏感性。 综上所述,理解并适应数据库系统的大小写敏感性是数据库开发和管理的重要部分。在PostgreSQL中,遵循上述...

    教你如何在windows与linux系统中设置MySQL数据库名、表名大小写敏感

    Windows系统默认情况下,数据库名和表名是大小写不敏感的,而Unix/Linux系统则通常是大小写敏感的。这种差异可能会导致在不同操作系统之间迁移数据库时出现兼容性问题。为了解决这个问题,MySQL提供了一个名为`lower...

    mysql大小写敏感

    因此,所使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。 在 Unix 系统中,数据库名和表名对大小写敏感,而在 Windows 中对大小写不敏感。Mac OS X 是一个特殊情况,它基于 Unix 但使用默认文件...

    有关MySQL8.0大小写敏感的问题

    MySQL 8.0作为MySQL数据库的重要版本更新,引入了一系列的新特性与优化改进,其中包括对数据库和表名大小写敏感性的调整。这一变化对于新老用户来说都需要一定的适应期,尤其是那些在早期版本中习惯于特定大小写行为...

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

    MySQL 数据库系统在处理数据库名和表名的大小写敏感性方面存在差异,这主要取决于运行 MySQL 的操作系统。在讨论这一主题之前,首先要明白一点,MySQL 的设计遵循了 ANSI SQL92 规范,但对某些标准进行了扩展,其中...

    0积分:MySql表名大小写的问题.txt

    ### MySQL表名大小写敏感性问题详解 #### 标题:0积分:MySql表名大小写的问题 #### 描述:MySql表名大小写的问题 #### 标签:mysql 大小写 #### 部分内容摘要: > 在MySQL环境中,表名的大小写敏感性是一个常见...

    MySql下实现查询表名不区分大小写

    在MySQL数据库管理中,表名和数据库名的大小写敏感性是一个重要的配置选项,尤其是在不同操作系统环境下。在Linux系统中,默认情况下,MySQL是严格区分大小写的,这与Windows环境下的行为形成鲜明对比,后者默认不...

    MySQL数据库大小写敏感的问题

    MySQL数据库在处理数据库名、表名以及列名时的大小写敏感性问题是一个常见的困扰,尤其是在跨不同操作系统环境时。MySQL的行为受所运行的操作系统的影响,因为数据库名和表名实际上对应于数据目录中的文件名。在...

    mysql表名忽略大小写配置方法详解

    MySQL数据库在处理表名、数据库名以及列名时的大小写规则可能会因操作系统的差异而有所不同。...尽管可以配置MySQL忽略大小写,但这并不能解决所有可能的兼容性问题,尤其是在已存在大小写敏感数据的情况下。

    数据库区分大小写的设置

    本文将深入探讨SQL Server与MySQL这两种主流数据库管理系统中关于大小写敏感性的设置。 #### SQL Server 大小写敏感性设置 SQL Server默认情况下对标识符(例如表名、列名等)是不区分大小写的。然而,在某些场景...

    MySQL的SQL语句大小写不敏感问题解决方案

    MySQL 的 SQL 语句大小写不敏感问题解决方案 MySQL 的 SQL 语句大小写不敏感问题是一...MySQL 的 SQL 语句大小写不敏感问题是一个需要注意的问题,通过设置表名的大小写规则和字段的 BINARY 属性,可以解决这个问题。

    LINUX系统下mysql的大小写区分问题.docx

    需要注意的是,尽管可以通过这些方法来控制大小写敏感性,但最佳实践是始终以一种一致的方式编写数据库对象的名称,避免因大小写问题引发的混淆和错误。在开发和维护过程中,保持命名规范和一致性至关重要,尤其是当...

    库名表名大小写问题与sqlserver兼容的启动配置方法

    在处理大小写敏感性方面,这些差异可能会导致兼容性问题,尤其是在跨平台或混合环境的操作中。本篇文章将详细介绍如何解决MySQL中的库名表名大小写问题以及使其与SQL Server兼容的启动配置方法。 MySQL默认在Linux...

    Mysql数据库安装要求

    本节将详细介绍在Linux环境下安装MySQL数据库的方法,主要包括下载安装资源库、安装MySQL服务、设置表名大小写不敏感、修改默认密码以及创建远程管理用户等内容。 ##### 2.1 下载并安装资源库 根据目标系统的版本...

    数据库建表快捷转换大小写.rar

    1. **大小写敏感性**:大部分关系型数据库系统,如MySQL、PostgreSQL,都是大小写敏感的,这意味着在创建表名、字段名或SQL查询语句时,大小写必须严格匹配。如果不一致,可能会导致语法错误或查询结果不正确。 2. ...

    82分tencent的Mysql云数据库产品认证答案

    高可用性和容灾是指腾讯云 MySQL 云数据库产品提供的一种高可用性和容灾解决方案,旨在确保 MySQL 数据库的高可用性和数据安全性。高可用性和容灾解决方案包括同城多可用区灾备、跨城灾备、数据加密、备份和恢复等。...

    MySQL数据库学习笔记.pdf

    同时,MySQL的数据库和表在操作系统下对应为目录和文件,所以它们的大小写敏感性取决于操作系统的规则。 索引是提升数据库查询性能的关键,MySQL支持多种类型的索引,如B-tree、Hash和Full-text索引。用户变量用@...

Global site tag (gtag.js) - Google Analytics