如果给定了一个完整的表,我该如何将字符集从utf8_bin更改为utf8_unicode_ce?正常的“alter”查询不起作用,因为会出现“重复条目错误”。例如,有两个条目。
David Hussa
并且
David Hußa
我知道它们是一样的。有没有一种优雅的方式告诉MySQL“合并”这些条目?我应该提到,这些条目的ID在其他表中被用作引用,因此MySQL也必须尊重这一点。还是说我必须用冗长而烦人的方式来做这件事:手动合并每个重复项,然后更改排序规则?
表格如下:
delimiter $$
CREATE TABLE `authors` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) COLLATE utf8_bin NOT NULL,
`count` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `name_UNIQUE` (`name`),
FULLTEXT KEY `name_FULLTEXT` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=930710 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Stores all authors from dblp.xml.'$$