Frage

Ich habe eine Anwender-Tabelle, in der eine Spalte namens 'Spitzname', UTF-8 codiert, varchar (20), der Tisch ist in Innodb.Es gibt 2 Platten, die man hat, einen Spitznamen= 'Gunni' und den anderen Spitznamen= Günni '.Wenn ich versucht habe, einen eindeutigen Index in diese Spalte anzuwenden, gab MySQL mir diesen Fehler:

Fehler 1062 (23000) in Zeile 263: Duplikateintrag 'Gunni' für Key 2

Ich habe die Daten überprüft. Es gibt nur einen Datensatz, der den Namen "Gunni" hat, und wenn ich den "Günni-Datensatz" an etwas anderes ändere, dann wenden Sie den einzigartigen Index erneut an, funktioniert alles gut.

Wie kommen Günni '&' Gunni 'Duplikate?Hier sind die Hex-Werte für sie, ich erhalte dies mit der HEX-Funktion von MySQL ():

gunni -> 67756e6e69

günni -> 67c3bc6e6e69

Sie sind offensichtlich anders.Wie kommt es, dass MySQL diese 2 so behandelt?Oder gibt es etwas, was ich nicht über einzigartige Indizes kenne?Oder sogar, könnte dies ein MySQL-Fehler sein?

War es hilfreich?

Lösung

Es ist wegen der von Ihnen verwendeten Collation.

Alles, was mit _ci endet, ist die Groß- und Kleinschreibung (und auch der Akzent / Umlaut unempfindlich).Ja, MySQL wird "Günni" und "Gunni" in Betracht ziehen, es sei denn, Sie ändern Ihre Collation.

docs: http://dev.mysql.com/doc / refman / 5.0 / de / charset-table.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top