Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Agrupamento MySQL:latin1_swedish_ci vs utf8_general_ci


Faça o que fizer, não tente usar o agrupamento padrão swedish_ci com utf8 (em vez de latin) no mysql, ou você receberá um erro. Os agrupamentos devem ser emparelhados com o conjunto de caracteres correto para funcionar. Este SQL falhará devido à incompatibilidade no charset e no agrupamento:
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

E @Blaisorblade apontou que a maneira de corrigir isso é usar o conjunto de caracteres que acompanha o agrupamento sueco:
DEFAULT CHARACTER SET = utf8_swedish_ci

O SQL para o módulo cal (calendário) para o framework Yii php tinha algo parecido com o código errôneo acima. Espero que já tenham corrigido.