Інструкція SQL MERGE комбайни ВСТАВИТИ , ВИДАЛИТИ , і ОНОВЛЕННЯ заяв в один єдиний запит.
java перевертає рядок
Інструкція MERGE в SQL
Оператор MERGE у SQL використовується для виконання операцій вставки, оновлення та видалення на a цільова таблиця на основі результатів JOIN з a вихідна таблиця . Це дозволяє користувачам синхронізувати дві таблиці, виконуючи операції з однією таблицею на основі результатів з другої таблиці.
Оператор MERGE порівнює дані між вихідною та цільовою таблицями на основі вказаних ключових полів. Він виконує відповідні дії, як-от вставляння нових записів, оновлення існуючих, видалення чи позначення записів, яких більше немає в джерелі.
Цей оператор забезпечує гнучкий спосіб керування змінами даних і зазвичай використовується в таких сценаріях, як обслуговування Розміри, що повільно змінюються ( SCD ) в ОБ'ЄДНАТИ В target_table
ВИКОРИСТАННЯ вихідної_таблиці
ON merge_condition
КОЛИ СПІВІДАЄТЬСЯ ТО
UPDATE SET стовпець1 = значення1 [, стовпець2 = значення2 …]
КОЛИ НЕ ВІДПОВІДАЄ ТО
INSERT (стовпець1 [, стовпець2 …])
VALUES (значення1 [, значення2 …]);
Приклад оператора SQL MERGE
Припустимо, є дві таблиці:
- PRODUCT_LIST це таблиця, яка містить поточні відомості про продукти, доступні з полями P_ID, P_NAME і P_PRICE, що відповідають ідентифікатору, назві та ціні кожного продукту.
- UPDATED_LIST це таблиця, яка містить нові відомості про продукти, доступні з полями P_ID, P_NAME і P_PRICE, що відповідають ідентифікатору, назві та ціні кожного продукту.

Завдання полягає в тому, щоб оновити деталі продуктів у PRODUCT_LIST відповідно до UPDATED_LIST.
Рішення
Тепер, щоб краще пояснити цей приклад, давайте розділимо його на кроки.
Крок 1: Розпізнайте таблицю TARGET і SOURCE
Отже, у цьому прикладі, оскільки запитується оновити продукти в PRODUCT_LIST відповідно до UPDATED_LIST, отже, PRODUCT_LIST діятиме як TARGET, а UPDATED_LIST — як SOURCE таблиця.

Крок 2: Розпізнайте операції, які потрібно виконати.
Тепер, як видно, існує три невідповідності між таблицею TARGET і SOURCE, а саме:
1. Вартість КАВИ в TARGET становить 15,00, а в SOURCE — 25,00
як центрувати зображення на css
PRODUCT_LIST 102 COFFEE 15.00 UPDATED_LIST 102 COFFEE 25.00>
2. У SOURCE немає продукту BISCUIT, але він є в TARGET
PRODUCT_LIST 103 BISCUIT 20.00>
3. У TARGET немає продукту CHIPS, але він є в SOURCE
UPDATED_LIST 104 CHIPS 22.00>
Отже, у TARGET потрібно виконати три операції відповідно до наведених вище розбіжностей. Вони є:
1. Операція ОНОВЛЕННЯ
102 COFFEE 25.00>
2. Операція DELETE
Катріна Кайф
103 BISCUIT 20.00>
3. Операція INSERT
104 CHIPS 22.00>
Крок 3: Напишіть запит SQL
The SQL запит виконувати вищезазначені операції за допомогою Оператор MERGE це:
SQL /* Selecting the Target and the Source */ MERGE PRODUCT_LIST AS TARGET USING UPDATE_LIST AS SOURCE /* 1. Performing the UPDATE operation */ /* If the P_ID is same, check for change in P_NAME or P_PRICE */ ON (TARGET.P_ID = SOURCE.P_ID) WHEN MATCHED AND TARGET.P_NAME SOURCE.P_NAME OR TARGET.P_PRICE SOURCE.P_PRICE /* Update the records in TARGET */ THEN UPDATE SET TARGET.P_NAME = SOURCE.P_NAME, TARGET.P_PRICE = SOURCE.P_PRICE /* 2. Performing the INSERT operation */ /* When no records are matched with TARGET table Then insert the records in the target table */ WHEN NOT MATCHED BY TARGET THEN INSERT (P_ID, P_NAME, P_PRICE) VALUES (SOURCE.P_ID, SOURCE.P_NAME, SOURCE.P_PRICE) /* 3. Performing the DELETE operation */ /* When no records are matched with SOURCE table Then delete the records from the target table */ WHEN NOT MATCHED BY SOURCE THEN DELETE /* END OF MERGE */>
Вихід:
PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00 102 COFFEE 25.00 104 CHIPS 22.00>
Отже, таким чином ми можемо виконати всі ці три основні оператори в SQL разом за допомогою оператора MERGE.
Примітка: У синтаксисі MERGE можна використовувати будь-яке ім’я, окрім мети та джерела. Вони використовуються лише для кращого пояснення.
Важливі моменти про оператор SQL MERGE
- Інструкція SQL MERGE поєднує ВСТАВИТИ , ОНОВЛЕННЯ , і ВИДАЛИТИ операції в одному операторі, що забезпечує ефективну синхронізацію даних між вихідною та цільовою таблицями.
- Він забезпечує гнучкість у налаштуванні складних сценаріїв SQL, обробляючи кілька операцій обробки даних в одній транзакції.
- Інструкція SQL MERGE зазвичай використовується в таких сценаріях, як підтримка розмірів, що повільно змінюються (SCD) у сховищах даних.
- Правильне індексування, оптимізовані умови з’єднання та фільтрування вихідної таблиці для необхідних записів можуть оптимізувати продуктивність оператора MERGE.