【发布时间】:2021-04-17 08:22:34
【问题描述】:
我想将视图的排序规则设置为默认数据库。但该选项不可用。 即使我尝试设置除此之外的任何其他内容,也不会在列中反映相同的内容,因为它们单独具有不同的排序规则。
代码:
create or replace view my_view as
select * from table_a a
inner join table_b b
on a.id = b.fk_id
collate utf8mb4_unicode_ci
但是如果我查询
SHOW FULL COLUMNS FROM my_view
结果集包含排序规则为 utf8mb4_general_ci
谁能解释为什么会这样?我该如何纠正?
更多信息
SHOW VARIABLES LIKE "char%";
| variable_name | value |
|---|---|
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
【问题讨论】:
-
为您所在的
DATABASE建立了哪些字符集和排序规则?还有什么联系? -
@RickJames 目前当我尝试将排序规则设置为 latin1_swedish_ci 时,它会抛出错误,因为 "COLLATION latin1_swedish_ci is not valid for CHARACTER SET utf8mb4" 。上面提到的任何变量中都不存在utf8mb4,不知道它是怎么来的以及如何解决这个问题
标签: mysql database collation character-set