sql >> Base de Datos >  >> RDS >> Mysql

Intercalación de MySQL:latin1_swedish_ci Vs utf8_general_ci

Hagas lo que hagas, no intentes usar la intercalación predeterminada swedish_ci con utf8 (en lugar de latin) en mysql, o obtendrás un error. Las intercalaciones deben combinarse con el juego de caracteres adecuado para que funcionen. Este SQL fallará debido a la falta de coincidencia en el juego de caracteres y la intercalación:

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

Y @Blaisorblade señaló que la forma de solucionar esto es usar el juego de caracteres que va con la intercalación sueca:

DEFAULT CHARACTER SET = utf8_swedish_ci

El SQL para el módulo cal (calendario) para el marco php de Yii tenía algo similar al código erróneo anterior. Esperemos que ya lo hayan solucionado.