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

mySQL:utf8 tegnsæt på indekstabel og duplikatnøglefejl

Du bør bruge sorteringen utf8_unicode_ci når du bruger tyske tegn, ifølge diskussionen i denne fejl:Bug #39816 Tysk kollation under utf8_unicode_ci er forkert .

På trods af titlen på den fejl har jeg lige testet dette den 5.6.15, og din testcase virker, hvorimod standard unicode-sorteringen ikke virker:

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:Jeg anbefaler, at du bruger et udviklingsmiljø de samme versioner af al software som dit produktionsmiljø, eller i det mindste deler den samme hovedversion. Du vil helt sikkert støde på andre inkompatibiliteter, hvis du udvikler i 5.5 og derefter prøver at implementere til 5.0.



  1. Sådan opretter du forbindelse til en database ved hjælp af Sequel Pro

  2. Hvordan man tvinger evaluering af underforespørgsel, før man tilslutter sig/skubber ned til en fremmed server

  3. Generer en tabel over ordrer grupperet efter bruger_id, som summerer mængden af ​​produktet

  4. Beregning af forskel på dato og klokkeslæt række mellem rækker på samme tabel