Двойное обновление ключа с несколькими вставками

Как правильно управлять обновлением дубликата ключа для следующего запроса 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 в ряд.

Другие вопросы по тегам