排序规则更改 utf8mb4_unicode_ci 为 utf8mb4_general_ci

问题描述 投票:0回答:2

对于我的数据库,我使用

utf8mb4_unicode_ci
utf8mb4
字符集作为默认值。这是一个错误,使用我创建的数据库的人们正在抱怨这种排序规则。我需要将其转换为
utf8mb4_general_ci
。我是否能够使用 alter 语句更改数据库,例如:

ALTER DATABASE `#{database}` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

或者,即使两个排序规则之间的字符集相同,我是否需要更改每个单独的表并处理列?我似乎无法找到明确的答案...我正在使用 MySQL 5.7.2x .

mysql database collation utf8mb4
2个回答
2
投票

utf8mb4_unicode_520_ci
比您提到的任何一个排序规则都要好。

他们为什么抱怨? 也许

JOINs
未能使用索引。 我会和他们争论旧桌子应该换掉。

ALTER DATABASE
仅设置未来表格的默认值。 它不会做你需要的事情。 每张桌子都需要

ALTER TABLE ... CONVERT TO ...

。  请参阅 
http://mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes 以获得类似的 ALTER
。  它提供了一种自动生成所有
ALTERs
的方法。


0
投票
这是最快、最准确的。因为如果你使用phpmyadmin,有过因为要执行的表名是不同的tab而留下的经验。

© www.soinside.com 2019 - 2024. All rights reserved.