Что такое MERGE в SQL

Python Middle Без компании
Что такое MERGE в SQL
Ответы
`MERGE` в SQL — это операция, объединяющая `INSERT`, `UPDATE` и `DELETE` в одном запросе. Она позволяет синхронизировать данные между таблицами, выполняя действия в зависимости от условий совпадения. **Синтаксис:** ``` 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`: ``` 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`).