Двойное обновление ключа с несколькими вставками
Как правильно управлять обновлением дубликата ключа для следующего запроса SQL, в котором выполняется несколько вставок?
INSERT into user(id, first, last)
VALUES(1, 'f1', 'l1'), (2, 'f2', 'l2')
ON DUPLICATE KEY UPDATE first = 'f1', last = 'l1'; // what about f2/l2?
Вопрос: как я могу указать несколько значений обновления ключа для вышеупомянутого запроса или помочь с побочным мышлением, пожалуйста.
Обзор: проект предназначен для синхронизации с удаленного канала json.
1 ответ
Решение
Использование VALUES
:
INSERT into user(id, first, last)
VALUES(1, 'f1', 'l1'), (2, 'f2', 'l2')
ON DUPLICATE KEY UPDATE
first = VALUES(first),
last = VALUES(last);
Это похоже на функцию (действительно синтаксический сахар), которая говорит, что нужно передать значение для insert
в ряд.