mysql - 我如何找到列的排序规则,因为我得到不同的结果取决于我在哪里看?
问题描述
如果我使用select * from information_schema.columns where table_name = 'countries';
,我会看到所有文本列的 COLLATION_NAME utf8_general_ci
。
如果我使用show full columns from countries;
,我会看到所有文本列的 COLLATION utf8_general_ci
,与上述命令的输出相匹配。
如果我使用show create table countries;
,我会看到带有 COLLATION 的表,utf8_unicode_ci
并且列上没有排序规则。
字符集是utf8
.
在所有这些命令之前,我运行过:
ALTER TABLE countries
CONVERT TO CHARACTER SET UTF8,
COLLATE utf8_unicode_ci,
ROW_FORMAT DYNAMIC,
CHANGE COLUMN `code` `code` char(2) CHARACTER SET UTF8 COLLATE utf8_unicode_ci NOT NULL COMMENT '',
CHANGE COLUMN `name` `name` varchar(80) CHARACTER SET UTF8 COLLATE utf8_unicode_ci NOT NULL COMMENT ''
;
所以我utf8_unicode_ci
到处都在期待。
但这似乎对存储在 information_schema.columns 中的值没有影响
目标是将我的整个数据库转换为utf8_unicode_ci
.,但在 60GB 左右,我不想浪费时间来转换我不需要做的事情。
我如何确定该列是否已经在正确的排序规则中,当我可以判断的是 information_schema 和各种列描述机制都说与show create table
命令相比时它的排序规则是错误的?
解决方案
似乎试图在同一查询中更改列和表的排序规则,无论顺序如何,都不起作用,只有表排序规则被更改。
推荐阅读
- wso2 - 如何访问和处理发送到 Ballerina 服务资源的 json 数组
- database - Flutter 应用程序是否可以使用 RethinkDB?
- node.js - MongoDB Atlas 连接不断下降
- vim - 为什么启动vim时vim插件'itchyny/lightline.vim'colorscheme没有改变?
- mongoose - Does collection still exists in mongoose?
- java - 指定主题时使用直接交换的 RabbitMQ
- sql-server - 如果我需要按 sql 中的计算列进行分组或过滤,我必须指定两次计算。这是否意味着 SQL Server 工作量翻倍?
- sql - 如何在 SQL 列中选择某个单词及其结果?
- coq - Coq 归纳定义中的非严格正数问题
- java - 如何实现一个java测试器类