Встречается на собеседованиях • сегодня

Что такое MERGE в SQL

MERGE в SQL — это операция, объединяющая INSERT, UPDATE и DELETE в одном запросе. Она позволяет синхронизировать данные между таблицами, выполняя действия в зависимости от условий совпадения.

Синтаксис:

sql
MERGE INTO target_table AS target
USING source_table AS source
ON target.key = source.key
WHEN MATCHED THEN
    UPDATE SET target.column = source.column
WHEN NOT MATCHED THEN
    INSERT (key, column) VALUES (source.key, source.column)
WHEN NOT MATCHED BY SOURCE THEN
    DELETE;

Пример:
Обновляем цены товаров из временной таблицы new_prices:

sql
MERGE INTO products AS p
USING new_prices AS np
ON p.id = np.id
WHEN MATCHED THEN
    UPDATE SET p.price = np.price
WHEN NOT MATCHED THEN
    INSERT (id, price) VALUES (np.id, np.price);

Плюсы:

  • Эффективность (одна операция вместо нескольких).
  • Атомарность (все действия выполняются в одной транзакции).

Поддерживается в PostgreSQL, Oracle, SQL Server, но не в MySQL (там используется INSERT ... ON DUPLICATE KEY UPDATE).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы