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

mySQL:conjunto de caracteres utf8 na tabela de índice e erro de chave duplicada


Você deve usar o agrupamento utf8_unicode_ci quando você usa caracteres alemães, de acordo com a discussão neste bug:Bug #39816 German collation em utf8_unicode_ci está incorreto .

Apesar do título desse bug, acabei de testar isso em 5.6.15, e seu caso de teste funciona, enquanto o agrupamento padrão de unicode não funciona:
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:Eu recomendo que você use um ambiente de desenvolvimento com as mesmas versões de todos os softwares que seu ambiente de produção, ou pelo menos compartilhe a mesma versão principal. Você certamente encontrará outras incompatibilidades se desenvolver em 5.5 e depois tentar implantar em 5.0.