在 MySQL Workbench 中设置默认排序规则方法不会更改排序规则方法
Setting default collation method in MySQL Workbench doesn't change the collation method
我正在使用 MySQL workbench 设计我的 MySQL 模式,我需要我的数据库区分大小写。我已将默认排序规则方法设置为 latin1_general_cs
、latin1_bin
和 utf8_bin
无济于事。当我使用命令 SELECT collation(version())
检查 MySQL 中的排序规则版本时,它 returns
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` ;
这让我非常困惑,为什么我没有看到正确的结果或正确的默认排序方法。有什么想法吗?
我发现问题是我在重新初始化数据库模式之前没有删除它,所以更改没有传播到当前数据库。
只需将此命令添加到我的 .sql
脚本的开头:
DROP SCHEMA IF EXISTS `database_name` ;
解决了我的问题,我可以进行区分大小写的查询!
我正在使用 MySQL workbench 设计我的 MySQL 模式,我需要我的数据库区分大小写。我已将默认排序规则方法设置为 latin1_general_cs
、latin1_bin
和 utf8_bin
无济于事。当我使用命令 SELECT collation(version())
检查 MySQL 中的排序规则版本时,它 returns
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` ;
这让我非常困惑,为什么我没有看到正确的结果或正确的默认排序方法。有什么想法吗?
我发现问题是我在重新初始化数据库模式之前没有删除它,所以更改没有传播到当前数据库。
只需将此命令添加到我的 .sql
脚本的开头:
DROP SCHEMA IF EXISTS `database_name` ;
解决了我的问题,我可以进行区分大小写的查询!