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

Collation MySQL :latin1_swedish_ci contre utf8_general_ci

Quoi que vous fassiez, n'essayez pas d'utiliser la collation swedish_ci par défaut avec utf8 (au lieu de latin) dans mysql, ou vous obtiendrez une erreur. Les classements doivent être associés au bon jeu de caractères pour fonctionner. Ce SQL échouera en raison de la non-concordance du jeu de caractères et du classement :

CREATE  TABLE IF NOT EXISTS `db`.`events_user_preference` (
  `user_id` INT(10) UNSIGNED NOT NULL ,
  `email` VARCHAR(40) NULL DEFAULT NULL ,
  PRIMARY KEY (`user_id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = latin1_swedish_ci

Et @Blaisorblade a souligné que la façon de résoudre ce problème est d'utiliser le jeu de caractères qui accompagne la collation suédoise :

DEFAULT CHARACTER SET = utf8_swedish_ci

Le SQL du module cal (calendrier) du framework php Yii avait quelque chose de similaire au code erroné ci-dessus. J'espère qu'ils l'ont corrigé maintenant.