2015-07-15 1 views
4

J'ai une clé unique sur une colonne. Lorsque j'insère a puis å il génère une erreur:Mysql Contrainte UNIQUE KEY - a et å sont traités comme les mêmes caractères

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'å' for key 'constraint-1'' in ..

.... Mais a et å sont différents caractères UTF - donc ce qui se passe ....?

la table a DEFAULT CHARSET=utf8mb4 et utf8mb4_unicode_ci collation.

+0

MySQL applique une collation à chaque colonne qui définit l'ordre de tri et d'équivalence des lettres. Pour la collation appliquée à cette colonne, ces deux lettres sont considérées comme équivalentes. –

+0

@HoboSapiens Je pensais que la collation est seulement utilisée pour le tri, et la seule chose qui compte pour l'insertion est un jeu de caractères ?? – Dannyboy

+0

duplication possible de [distinction MySQl entre e et é (e aiguë) - problème problème UNIQUE] (http://stackoverflow.com/questions/6466901/mysql-distinction-between-e-and-%c3%a9-e- acute-index-unique-problem) –

Répondre

-4

utiliser la collation latin1_swedish_ci dans la colonne unique.

This is my server screen

Screen after selecting database

Screen after selecting table

Records in the table

Error while entering duplicate value

+1

pourquoi dans le monde ???? – Dannyboy

+0

Ceci est correct et fonctionne mec parfait. –

+0

Avez-vous essayé cela? –