MERGE
в PostgreSQL выполняет вставку, обновление или удаление строк в целевой таблице на основе условий совпадения с исходными данными. Этот оператор помогает синхронизировать данные и избегать дублирования.
Использование MERGE
Обновление данных в таблице customers
или вставка новых записей:
MERGE INTO customers AS c
USING new_data AS n
ON c.id = n.id
WHEN MATCHED THEN
UPDATE SET name = n.name, email = n.email
WHEN NOT MATCHED THEN
INSERT (id, name, email) VALUES (n.id, n.name, n.email);
Удаление данных при совпадении
Удаление записей, если они присутствуют в источнике obsolete_data
:
MERGE INTO customers AS c
USING obsolete_data AS o
ON c.id = o.id
WHEN MATCHED THEN
DELETE;
Применение MERGE
- Синхронизация данных между таблицами.
- Обновление и вставка данных без дублирования.
- Очистка устаревших данных.