我正在使用MySQL工作台来设计我的MySQL模式,我需要我的数据库区分大小写。我已将默认排序规则方法设置为latin1_general_cs
,latin1_bin
和utf8_bin
无效。当我使用命令SELECT collation(version())
检查MySQL中的排序规则版本时,它返回
mysql> select collation(version());
+----------------------+
| collation(version()) |
+----------------------+
| utf8_general_ci |
+----------------------+
1 row in set (0.00 sec)
无论我选择哪种默认方法。
当我进行以下搜索时:
mysql> select * from table_name where t_name = "search_request";
我回来了SEARCH_REQUEST
,以及search_request
。
但是,如果我使用命令
mysql> select * from table_name where t_name = "search_request" collate utf8_bin;
我得到了预期的结果search_request
。
顺便说一句,在我的.sql
文件中,我看到以下内容:
CREATE SCHEMA IF NOT EXISTS `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ;
USE `database_name` ;
这令我非常困惑,为什么我没有看到正确的结果或正确的默认整理方法。有什么想法吗?
答案 0 :(得分:1)
我发现问题是我在重新初始化之前没有丢弃我的数据库模式,因此更改没有传播到当前数据库。
只需将此命令添加到我的.sql
脚本的开头:
DROP SCHEMA IF EXISTS `database_name` ;
解决了我的问题,我能够进行区分大小写的查询!