ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe

При переходе на MySQL 5.5 с репликацией стали возникать ошибки:


Таблица при этом выглядела так:

Собственно, в MySQL 5.5 «пофиксили баг«, что свелось к тому, что теперь нельзя реплицировать результаты запросов, в которых есть ON DUPLICATE KEY UPDATE и больше одного уникального ключа.
Пришлось переделывать логику с выпиливанием столбца uniq.
В общем, MySQL молодцы, сломали обратную совместимость для устранения мелкого бага.
Ссылка на документацию — http://docs.oracle.com/cd/E17952_01/refman-5.5-en/insert-on-duplicate.html (об этом в самом низу).

LEAVE A COMMENT