我们有一个非常大的InnoDB MySQL 5.1数据库,所有表都使用latin1_swedish_ci
排序规则。我们希望将 在ISO-8859-1中的所有数据转换为UTF-8。如果有的话,将整理改为utf8_general_ci
的效果如何?
我们最好编写一个脚本来转换数据并插入新表吗?显然,我们的目标是尽量减少重新编码时丢失任何数据的风险。
编辑:我们确实有重音符号,符号等等。
答案 0 :(得分:2)
如果数据当前仅使用拉丁字符,并且您只是想将字符集和排序规则更改为UTF8以便将来添加UTF-8数据,那么只需更改字符集和排序规则就没有问题。我当然会先在表格的副本中这样做。
答案 1 :(得分:1)
大约一周前,我不得不做同样的任务(问题ö, ä, å
)
dump.sql
。CHARSET=latin1
替换为 CHARSET=utf8
(dump.sql
)。COLLATE=latin1_swedish_ci
替换为 COLLATE=utf8_unicode_ci
(在dump.sql
中)。utf8_unicode_ci
创建了一个新数据库。dump.sql
。charset
alter database MY_DB charset=utf8;
醇>
它完美无缺
注意:在Mike Brant的评论之后,我认为最好是手动搜索并替换你特别想要的字段。或者,您只需对每个字段使用ALTER
,而无需dump.sql
。它在我的情况下没有太大的改变,因为我的大多数字段都需要进行utf编码