我使用的是分OS 6.5和MySQL 5.1.73,我知道数据库名和表名以及列名都是区分大小写的
现在,我想让MySQL在% OS中以不区分大小写的方式工作。
我已经尝试了下面的链接,它的工作表名。但是,我需要区分大小写的表列名称。
How to force case sensitive table names?
有可能吗?如果是的话,我该怎么做?
发布于 2016-07-08 10:00:59
这取决于您创建的表的类型。对于字符串(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
字符集和排序规则有四个级别的默认设置:服务器、数据库、表和列。
发布于 2016-07-13 09:20:15
编辑mysql配置文件(my.cnf),在mysqld下添加lower_case_table_names = 1。并重新启动mysql服务,它将修复您的问题。
https://stackoverflow.com/questions/38263759
复制相似问题