【问题标题】:How to make MySQL colum name case insensitive in Cent OS?如何在 Centos 中使 MySQL 列名不区分大小写?
【发布时间】:2016-11-10 20:26:19
【问题描述】:

我使用的是 Cent OS 6.5 和 MySQL 5.1.73,我知道数据库名称和表名,并且列名在 Cent os 中区分大小写

现在,我想让 MySQL 在 Cent OS 中不区分大小写。

我已经尝试了以下链接,它适用于表名。但我需要区分表列名称的大小写

How to force case sensitive table names?

有可能吗?如果是,我该怎么做?

【问题讨论】:

  • 现在,我想让 MySQL 在 Cent OS 中不区分大小写。 为什么?
  • 我的服务器中有很多表。在我获取结果时,其中一些是不区分大小写的。其中一些是大写字母,其中一些是小写字母,所以我需要全部更改。如果它不区分大小写,可能会为我节省大量时间

标签: mysql linux centos


【解决方案1】:

编辑mysql配置文件(my.cnf),在[mysqld]下添加lower_case_table_names = 1。并重新启动 mysql 服务它将解决您的问题。

【讨论】:

    【解决方案2】:

    这取决于您创建的表的类型。 对于字符串(CHAR、VARCHAR、TEXT),字符串搜索使用比较操作数的排序规则。

    http://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html

    例如,如果表排序规则是 utf8_general_ci,_CI 表示不区分大小写

    否则排序规则 utf8_general 区分大小写

    您可以通过更新轻松更改表格的排序规则。

    不区分大小写的表 (utf8_general_ci) 示例

    CREATE TABLE  `test` (
    `id` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
    `value1` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
    ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci
    

    区分大小写的表(utf8_general)示例

    CREATE TABLE  `test` (
    `id` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
    `value1` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general NOT NULL
    ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general
    

    此外,如果您愿意,您可以更改默认排序规则,如下所述https://dev.mysql.com/doc/refman/5.7/en/charset-syntax.html

    字符集和排序规则有四个级别的默认设置:服务器、数据库、表和列。

    【讨论】:

      猜你喜欢
      • 2017-01-31
      • 2020-04-08
      • 2012-03-15
      • 2015-06-29
      • 2016-11-12
      • 1970-01-01
      • 2011-01-01
      • 2014-07-19
      相关资源
      最近更新 更多