Если вы укажете ON DUPLICATE KEY UPDATE и вставлена строка, которая приведет к дублированию значения в индексе UNIQUE или PRIMARY KEY, MySQL выполнит ОБНОВЛЕНИЕ старой строки. Например, если столбец a объявлен как UNIQUE и содержит значение 1, следующие два оператора имеют схожий эффект:
INSERT INTO table (a, b, c) VALUES (1,2, 3) ON DUPLICATE KEY UPDATE c = c + 1;
blockquote>Пример эквивалентного обновления выглядит следующим образом:
Таблица UPDATE SET c = c + 1 WHERE a = 1;
blockquote>Если столбец a и b уникален, будет использоваться эквивалентный запрос на обновление,
Таблица UPDATE SET c = c + 1 WHERE a = 1 ИЛИ b = 2 LIMIT 1;
blockquote>