MERGE в PostgreSQL: объединение данных

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

  • Синхронизация данных между таблицами.
  • Обновление и вставка данных без дублирования.
  • Очистка устаревших данных.