Mysql
 sql >> Database >  >> RDS >> Mysql

mySQL:set di caratteri utf8 sulla tabella dell'indice ed errore di chiave duplicata

Dovresti usare il confronto utf8_unicode_ci quando usi caratteri tedeschi, secondo la discussione in questo bug:Bug #39816 Collation tedesca sotto utf8_unicode_ci non è corretto .

Nonostante il titolo di quel bug, l'ho appena testato su 5.6.15 e il tuo test case funziona, mentre il confronto unicode predefinito non funziona:

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:ti consiglio di utilizzare in un ambiente di sviluppo le stesse versioni di tutti i software del tuo ambiente di produzione, o almeno condividere la stessa versione principale. Se sviluppi in 5.5 e poi provi a eseguire il deployment in 5.0, ti imbatterai in altre incompatibilità.