我有一张带有几个西班牙关键字的旧桌子。它的排序规则是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
如何进行更改以保留所有关键字?
答案 0 :(得分:1)
由于您专注于西班牙语,因此请使用西班牙语归类,而不是通用归类:utf8_spanish_ci
和utf8_spanish2_ci
。他们将ñ
视为n
和o
之间的单独字母。其他归类将ñ
和n
视为相同。
与此同时,ç=c
。
但是utf8_spanish_ci将ll
视为两个l
,而utf8_spanish2_ci将lz
视为在utf8mb4_es_0900_ai_ci
之后。 (关于字典还是电话簿的东西-还记得古代历史中的那些文物吗?)
参考:http://mysql.rjweb.org/utf8_collations.html
升级到8.0后,将有两个选择:utf8mb4_es_trad_0900_ai_ci
和{{1}}。