【发布时间】:2020-07-22 11:45:34
【问题描述】:
当我使用 collition utf8mb4_unicode_ci 创建架构时,它变成了 collition utf8mb4_0900_ai_ci(使用 Workbench)。即使服务器的默认设置设置了排序规则 utf8mb4_unicode_ci,它仍然会变为 utf8mb4_0900_ai_ci。
CREATE SCHEMA `new_schema` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
这会在导入数据库时出现与另一个数据库的外键约束问题。修复它的唯一方法是手动将约束的列一一设置为整理 utf8mb4_unicode_ci。一旦我这样做了,就可以进行约束了。
希望有人能解释为什么会发生这种情况并给出如何预防的答案。
最好, 泰德
@Rick James,这是您要求的输出:
【问题讨论】:
-
在我看来,仍然有一个设置覆盖了
utf8mb4_0900_ai_ci的排序规则。而且这似乎只发生在 MySQL 8 或更高版本上,你能确认一下吗? -
你用的是什么版本?请向我们展示
SHOW VARIABLES WHERE VALUE LIKE 'utf%';的输出。 -
@Fullslack.dev 它发生在 5.7 版中。
-
@RickJames 查询结果见原帖。
-
奇怪的是这发生在 5.7 版上,因为
utf8mb4_0900_ai_ci只在 version 8 引入。导入设置排序规则可能有什么东西吗?