Встречается на собеседованиях • сегодня
Что такое 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).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы