Конструкция INSERT … ON DUPLICATE KEY отличается от обычного INSERT тем, что при вставке новой строки в таблицу, если она уже существует, вместо неё выполняется операция обновления. 1
Оператор INSERT ON DUPLICATE KEY UPDATE используется для обработки повторяющихся записей в первичном ключе или уникальном столбце. 1 Он работает как обычный оператор INSERT, пока в столбец первичного ключа не будет вставлено повторяющееся значение. 1 Когда в столбец первичного ключа вводится повторяющееся значение, возникает ошибка. 1 Но предложение ON DUPLICATE KEY UPDATE обрабатывает эту ошибку, обновляя строку столбца первичного ключа. 1
Кроме того, INSERT … ON DUPLICATE KEY UPDATE обновляет только конкретно указанные поля, оставляя остальные данные без изменений. 3