Нарушение ограничения целостности: 1062 Дублирующая запись для сортировки utf8_unicode_ci

У меня есть таблица с именем tag с уникальным ограничением на столбец имен:

CREATE TABLE `tag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `UNIQ_389B7835E237E06` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=13963 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 

Сопоставление для этой таблицы – utf8_unicode_ci. Когда я пытаюсь вставить следующие 2 записи, я получаю «нарушение ограничения целостности».

SQL-журнал:

 130607 14:35:53 1096 Connect imtpdb@localhost on imtpdb 1096 Query SET NAMES utf8 1096 Query START TRANSACTION 1096 Query INSERT INTO tag (name) VALUES ('até') 1096 Query INSERT INTO tag (name) VALUES ('ate') 1096 Query rollback 1096 Quit 

Точное сообщение об ошибке:

 SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'ate' for key 'UNIQ_389B7835E237E06' 

my.cnf:

 [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] default-character-set = utf8 collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 по [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] default-character-set = utf8 collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 по [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] default-character-set = utf8 collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8 

Я запускаю mysql 5.1.54. Я пытался понять это сейчас, но безрезультатно. Кто-нибудь знает, что я делаю неправильно? Ох, просто чтобы сказать очевидное. Запись уже не существует в таблице.

Solutions Collecting From Web of "Нарушение ограничения целостности: 1062 Дублирующая запись для сортировки utf8_unicode_ci"

Collation utf8_unicode_ci не чувствителен к регистру и не чувствителен к акценту, поэтому он рассматривает 'até' и 'ate' как дубликаты. Нет многоязычной сортировки unicode, которая не чувствительна к регистру и чувствительна к акценту. В зависимости от ваших потребностей вы можете попробовать различные обходные пути. Некоторые связанные вопросы:

  • Есть ли сборка MySQL utf8, которая не объединяет символы с акцентом?
  • Нечувствительный к MySQL случай, но чувствительный к чувствительности UTF8 уникальный ключ
  • Как проводить поиск Accent Sensitive в MySql