Instrukcja SQL MERGE łączy WSTAWIĆ , USUWAĆ , I AKTUALIZUJ oświadczenia w jedno zapytanie.
co to jest obj w Javie
Instrukcja MERGE w SQL
Instrukcja MERGE w języku SQL służy do wykonywania operacji wstawiania, aktualizowania i usuwania na pliku tabela docelowa na podstawie wyników JOIN z a tabela źródłowa . Dzięki temu użytkownicy mogą synchronizować dwie tabele, wykonując operacje na jednej tabeli w oparciu o wyniki z drugiej tabeli.
Instrukcja MERGE porównuje dane pomiędzy tabelą źródłową i docelową na podstawie określonych pól kluczowych. Wykonuje odpowiednie działania, takie jak wstawianie nowych rekordów, aktualizacja istniejących oraz usuwanie lub oznaczanie rekordów, których już nie ma w źródle.
Ta instrukcja zapewnia elastyczny sposób zarządzania zmianami danych i jest powszechnie używana w scenariuszach takich jak konserwacja Powoli zmieniam wymiary ( SCD ) W POŁĄCZ SIĘ Z tabelą docelową
KORZYSTANIE Z tabeli_źródłowej
ON warunek_łączenia
KIEDY DOPASOWANO
UPDATE SET kolumna1 = wartość1 [, kolumna2 = wartość2…]
KIEDY NIE DOPASOWANO WTEDY
WSTAW (kolumna1 [, kolumna2…])
WARTOŚCI (wartość1 [, wartość2…]);
Przykład instrukcji SQL MERGE
Załóżmy, że istnieją dwie tabele:
- LISTA PRODUKTÓW czyli tabela zawierająca aktualne szczegóły dotyczące dostępnych produktów z polami P_ID, P_NAME i P_PRICE odpowiadającymi identyfikatorowi, nazwie i cenie każdego produktu.
- ZAKTUALIZOWANA LISTA czyli tabela zawierająca nowe szczegóły dotyczące dostępnych produktów z polami P_ID, P_NAME i P_PRICE odpowiadającymi identyfikatorowi, nazwie i cenie każdego produktu.

Zadanie polega na zaktualizowaniu szczegółów produktów na LISTIE PRODUCT zgodnie z UPDATED_LIST.
Rozwiązanie
Teraz, aby lepiej wyjaśnić ten przykład, podzielmy go na kroki.
Krok 1: Rozpoznaj tabelę TARGET i SOURCE
Zatem w tym przykładzie, ponieważ poproszono o aktualizację produktów na LIŚCIE PRODUCT zgodnie z listą UPDATED_LIST, zatem PRODUCT_LIST będzie działać jako TARGET, a UPDATED_LIST będzie działać jako tabela SOURCE.

Krok 2: Rozpoznaj operacje, które należy wykonać.
Jak widać, istnieją trzy niezgodności między tabelami TARGET i SOURCE, którymi są:
1. Koszt KAWY w TARGET wynosi 15,00 natomiast w SOURCE 25,00
PRODUCT_LIST 102 COFFEE 15.00 UPDATED_LIST 102 COFFEE 25.00>
2. W ŹRÓDLE NIE ma produktu BISKUPOWEGO, ale jest w TARGET
przycinanie ciągu Java
PRODUCT_LIST 103 BISCUIT 20.00>
3. W TARGET nie ma produktu CHIPS, ale jest on w ŹRÓDŁO
UPDATED_LIST 104 CHIPS 22.00>
Dlatego w TARGET-ie należy wykonać trzy operacje zgodnie z powyższymi rozbieżnościami. Oni są:
1. Operacja AKTUALIZUJ
102 COFFEE 25.00>
2. USUŃ operację
deterministyczne automaty skończone
103 BISCUIT 20.00>
3. Operacja WSTAW
104 CHIPS 22.00>
Krok 3: Napisz zapytanie SQL
The Zapytanie SQL wykonać powyższe operacje za pomocą Oświadczenie MERGE Jest:
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 */>
Wyjście:
PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00 102 COFFEE 25.00 104 CHIPS 22.00>
W ten sposób możemy wykonać wszystkie trzy główne instrukcje w języku SQL za pomocą instrukcji MERGE.
Notatka: W składni MERGE można użyć dowolnej nazwy innej niż cel i źródło. Są one używane wyłącznie w celu lepszego wyjaśnienia.
Ważne uwagi dotyczące instrukcji SQL MERGE
- Instrukcja SQL MERGE łączy WSTAWIĆ , AKTUALIZACJA , I USUWAĆ operacje w jedną instrukcję, umożliwiając efektywną synchronizację danych pomiędzy tabelami źródłowymi i docelowymi.
- Zapewnia elastyczność w dostosowywaniu złożonych skryptów SQL poprzez obsługę wielu operacji manipulacji danymi w jednej transakcji.
- Instrukcja SQL MERGE jest powszechnie używana w scenariuszach takich jak utrzymywanie wolno zmieniających się wymiarów (SCD) w hurtowniach danych.
- Prawidłowe indeksowanie, zoptymalizowane warunki łączenia i filtrowanie tabeli źródłowej pod kątem niezbędnych rekordów mogą zoptymalizować wydajność instrukcji MERGE.