Bazı mysql tablolarını latin1'den utf8'e dönüştürmeye çalışıyorum. Çoğunlukla işe yarayan aşağıdaki komutu kullanıyorum.Mysql tablolarını latin1'den utf8'ye dönüştürme
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Ancak, bir tabloda yinelenen anahtar girişi hakkında bir hata alıyorum. Bu bir "isim" alanında benzersiz bir dizin neden olur. Utf8 'e dönüştürülürken, herhangi bir "özel" karakterin, düz ingilizce eşdeğerleri olarak dizine eklendiği görülmektedir. Örneğin, zaten bir "Dru" ad alanı değeri olan bir kayıt var. Utf8'e dönüştürülürken, "Drü" ile bir kayıt bir kopya olarak kabul edilir. "Patrick" ve "Påtrìçk" ile aynı.
CREATE TABLE `example` ( `name` char(20) CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (`name`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO example (name) VALUES ('Drü'),('Dru'),('Patrick'),('Påtrìçk');
ALTER TABLE example convert to character set utf8 collate utf8_general_ci;
ERROR 1062 (23000): Duplicate entry 'Dru' for key 1