Mysql
 sql >> Base de données >  >> RDS >> Mysql

mySQL :jeu de caractères utf8 sur la table d'index et erreur de clé en double

Vous devez utiliser la collation utf8_unicode_ci lorsque vous utilisez des caractères allemands, selon la discussion de ce bogue :Bug #39816 Classement allemand sous utf8_unicode_ci est incorrect .

Malgré le titre de ce bogue, je viens de le tester sur 5.6.15, et votre cas de test fonctionne, alors que le classement unicode par défaut ne fonctionne pas :

CREATE TABLE `test` (
  `id` varchar(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 DEFAULT COLLATE=utf8_unicode_ci;

INSERT INTO `test` (`id`) VALUES ('das'), ('daß');

PS :Je vous recommande d'utiliser dans un environnement de développement les mêmes versions de tous les logiciels que votre environnement de production, ou au moins de partager la même version majeure. Vous risquez de rencontrer d'autres incompatibilités si vous développez en 5.5, puis essayez de déployer en 5.0.