【问题标题】:MySQL: Why is that when creating a schema with collation utf8mb4_unicode_ci it becomes utf8mb4_0900_ai_ciMySQL:为什么在使用排序规则 utf8mb4_unicode_ci 创建模式时它变成 utf8mb4_0900_ai_ci
【发布时间】: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 引入。导入设置排序规则可能有什么东西吗?

标签: mysql collation


【解决方案1】:

Workbench 表检查器未显示设置的排序规则。

运行SHOW TABLE STATUS FROM your_schema;,您将看到设置的排序规则。甚至在 Workbench 的 Shema Inspector 中也会显示正确的排序规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 2020-11-20
    • 2022-12-06
    • 2015-07-07
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多