【发布时间】:2020-02-13 06:06:37
【问题描述】:
我有一个带有几个西班牙关键字的旧表。它的排序规则是 latin1_swedish_ci。
包含关键字的列具有主索引。
当我尝试将排序规则更改为 utf8_general_ci 时,这是不可能的,因为如果发现重复项。
使用该索引是不可能的。
发生的情况是,例如,“cañada”被视为已经存在的“canada”,但它们是不同的词。
那是使用 phpMyAdmin。
另一种尝试是将表导出为 file.sql 并使用sed 's/STRING_SOURCE/STRING_REPLACE/'
但最后mysql源给了我同样的错误(确实期望:))
我还尝试使用整个数据库进行最后一个。
MySQL 版本 5.5.64-MariaDB
phpMyAdmin,选择数据库/表,选项卡结构,选择关键字的列更改,最后从下拉排序规则中选择ut8_general_ci
如何在保留所有关键字的情况下进行此更改?
【问题讨论】:
-
您很可能需要 utf8mb4_unicode_as 或更好的版本(utf8mb4_0900_as 如果您的 MySQL 版本支持它)。
-
嗯,我刚刚测试了你描述的过程,我没有遇到问题。您使用的是什么版本的 MySQL。您能准确描述一下您是如何更改排序规则的吗?
-
@Lunc Change fo utf8mb4_unicode_ci (not _as) 成功,没有重复的错误输出
-
@dstonek - 你确定 utf8mb4_unicode_ci 吗?