Skip to main content

Що робить команда MERGE?

Команда MERGE у SQL використовується для об'єднання даних із двох таблиць - вона дозволяє одночасно вставляти нові записи, оновлювати наявні й за потреби видаляти дублікати. Часто її називають "UPSERT" (update + insert).

Синтаксис (узагальнено):

sql
MERGE INTO Цільова_Таблиця AS Ц USING Джерело AS Д ON Ц.Ключ = Д.Ключ WHEN MATCHED THEN UPDATE SET Ц.Поле1 = Д.Поле1, Ц.Поле2 = Д.Поле2 WHEN NOT MATCHED THEN INSERT (Поле1, Поле2) VALUES (Д.Поле1, Д.Поле2);

Приклад:

sql
MERGE INTO Співробітники AS С USING НовіСпівробітники AS Н ON С.ID = Н.ID WHEN MATCHED THEN UPDATE SET С.Ім'я = Н.Ім'я, С.ВідділID = Н.ВідділID WHEN NOT MATCHED THEN INSERT (ID, Ім'я, ВідділID) VALUES (Н.ID, Н.Ім'я, Н.ВідділID);

Що робить

  1. Якщо запис з таким ID уже є в таблиці Співробітники → оновлює дані (UPDATE).
  2. Якщо запису немає → додає новий (INSERT).

Навіщо використовується:

  • Зручно синхронізувати таблиці, імпортувати нові дані й одночасно оновлювати старі.
  • Дозволяє уникати окремого коду для перевірки існування запису перед вставкою чи оновленням.

Простіше кажучи, MERGE - це команда для "оновити чи додати" запис у таблицю залежно від того, існує він чи ні.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.