MySQL: «Дублирующая запись для ключа», но в БД мы видим, что она не дублируется - PullRequest
1 голос
/ 07 мая 2019

Я использую

INSERT ON DUPLICATE KEY UPDATE

, и он работал хорошо в течение нескольких месяцев (вставляет данные или обновляет строку, если ключ уже существует).Сегодня внезапно я получаю:

Duplicate entry 'somekey' for key 'unique_key' 

Я зашел на phpMyAdmin и искал 'somekey', и там только одна строка, поэтому дубликатов нет.

Что может быть не так?

1 Ответ

1 голос
/ 07 мая 2019

Таблица уже содержит значение 'bitcoin' в поле 'slug'.

Поэтому попытка вставить другую строку, содержащую 'bitcoin' в поле 'slug', вызовет ошибку "Duplicate entry 'bitcoin' for key 'slug'", поскольку 'slug' является ключевым столбцом независимо от ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id).

slug - это уникальный ключ = во всей таблице возможно только одно вхождение, независимо от того, какой идентификатор у него будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...