mysql - 排序规则将 utf8mb4_unicode_ci 更改为 utf8mb4_general_ci
问题描述
对于我的数据库,我默认使用字符集utf8mb4_unicode_ci
。utf8mb4
这是一个错误,使用我创建的数据库的人抱怨排序规则。我需要将其转换为utf8mb4_general_ci
. 我是否能够仅使用更改语句更改数据库,例如:
ALTER DATABASE `#{database}` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
或者,即使两个排序规则之间的字符集相同,我是否需要更改每个单独的表并处理列?我似乎无法找到明确的答案......我正在使用 MySQL 5.7.2x 。
解决方案
utf8mb4_unicode_520_ci
比你提到的任何一个排序规则都要好。
他们为什么抱怨?也许JOINs
没有使用索引。我会和他们争论应该改变旧表。
ALTER DATABASE
只为将来的表设置默认值。它不会做你需要的。
ALTER TABLE ... CONVERT TO ...
每个表都需要。有关类似的ALTER
. 它提供了一种自动生成所有ALTERs
.
推荐阅读
- python - Pydantic - 在 response_model 中使用“联合”和“字段”时无法序列化/验证
- teradata - 创建表没有预期的行数
- python - 基于熊猫特定条件的分组计数和比率
- python - 在 python 中保存模型而不使用 sklearn
- java - 在另一个类错误中使用一个类的对象数组和方法 - JAVA
- html - 具有相同最大宽度的 2 个 div 显示不同的宽度
- android - 无法从 firebase 检索图像
- sqlite - 添加新表 Flutter 后 sqflite 在 Android 上崩溃
- tizen - 在 tizen 可穿戴应用程序中大约一个小时后获取 GPS 的 LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE
- elixir - Ecto(Phoenix)中的外键数组