Stavek SQL MERGE združuje VSTAVI , IZBRIŠI , in UPDATE izjave v eno samo poizvedbo.
dedovanje java
Stavek MERGE v SQL
Stavek MERGE v SQL se uporablja za izvajanje operacij vstavljanja, posodabljanja in brisanja na a ciljna tabela na podlagi rezultatov JOIN z a izvorna tabela . To uporabnikom omogoča sinhronizacijo dveh tabel z izvajanjem operacij v eni tabeli na podlagi rezultatov iz druge tabele.
Stavek MERGE primerja podatke med izvorno in ciljno tabelo na podlagi določenih ključnih polj. Izvaja ustrezna dejanja, kot je vstavljanje novih zapisov, posodabljanje obstoječih in brisanje ali označevanje zapisov, ki niso več prisotni v viru.
Ta izjava zagotavlja prilagodljiv način za upravljanje sprememb podatkov in se pogosto uporablja v scenarijih, kot je vzdrževanje Počasi spreminjajoče se dimenzije ( SCD ) v ZDRUŽI V ciljno_tabelo
UPORABA izvorne_tabele
ON merge_pogoj
KO SE UJEMA POTEM
UPDATE SET stolpec1 = vrednost1 [, stolpec2 = vrednost2 …]
KO SE NE UJEMA TAKOJ
VSTAVI (stolpec1 [, stolpec2 …])
VREDNOSTI (vrednost1 [, vrednost2 …]);
Primer izjave SQL MERGE
Recimo, da obstajata dve tabeli:
- PRODUCT_LIST ki je tabela, ki vsebuje trenutne podrobnosti o izdelkih, ki so na voljo s polji P_ID, P_NAME in P_PRICE, ki ustrezajo ID-ju, imenu in ceni vsakega izdelka.
- POSODOBLJENO_SEZNAM ki je tabela, ki vsebuje nove podrobnosti o izdelkih, ki so na voljo s polji P_ID, P_NAME in P_PRICE, ki ustrezajo ID-ju, imenu in ceni vsakega izdelka.

Naloga je posodobiti podrobnosti izdelkov na seznamu PRODUCT_LIST glede na UPDATED_LIST.
rešitev
Zdaj, da bi bolje razložili ta primer, ga razdelimo na korake.
1. korak: Prepoznajte tabelo CILJ in VIR
Torej v tem primeru, ker je pozvan, da posodobi izdelke v PRODUCT_LIST v skladu s UPDATED_LIST, bo torej PRODUCT_LIST deloval kot TARGET, UPDATED_LIST pa kot tabela SOURCE.

2. korak: Prepoznajte operacije, ki jih je treba izvesti.
Kot je zdaj razvidno, obstajajo tri neujemanja med TARGET in SOURCE tabelo, ki so:
1. Cena KAVE v TARGET je 15,00 medtem ko je v SOURCE 25,00
ponavljanje zemljevida v Javi
PRODUCT_LIST 102 COFFEE 15.00 UPDATED_LIST 102 COFFEE 25.00>
2. V SOURCE ni izdelka BISCUIT, vendar je v TARGET
PRODUCT_LIST 103 BISCUIT 20.00>
3. V TARGET ni izdelka CHIPS, vendar je v SOURCE
UPDATED_LIST 104 CHIPS 22.00>
Zato je treba izvesti tri operacije v TARGET glede na zgornja odstopanja. To so:
1. Operacija POSODOBITEV
102 COFFEE 25.00>
2. Operacija DELETE
json iz predmeta java
103 BISCUIT 20.00>
3. Operacija INSERT
104 CHIPS 22.00>
3. korak: Napišite poizvedbo SQL
The SQL poizvedba za izvajanje zgoraj omenjenih operacij s pomočjo Stavek MERGE je:
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 */>
Izhod:
PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00 102 COFFEE 25.00 104 CHIPS 22.00>
Tako lahko na ta način izvedemo vse te tri glavne stavke v SQL skupaj s pomočjo stavka MERGE.
Opomba: V sintaksi MERGE je mogoče uporabiti katero koli ime, razen cilja in vira. Uporabljajo se le za boljšo razlago.
Pomembne točke o izjavi SQL MERGE
- Stavek SQL MERGE združuje VSTAVI , NADGRADNJA , in IZBRIŠI operacije v en sam stavek, kar omogoča učinkovito sinhronizacijo podatkov med izvornimi in ciljnimi tabelami.
- Zagotavlja prilagodljivost pri prilagajanju zapletenih skriptov SQL z obravnavanjem več operacij manipulacije podatkov v eni transakciji.
- Stavek SQL MERGE se običajno uporablja v scenarijih, kot je vzdrževanje počasi spreminjajočih se dimenzij (SCD) v podatkovnih skladiščih.
- Pravilno indeksiranje, optimizirani pogoji združevanja in filtriranje izvorne tabele za potrebne zapise lahko optimizirajo delovanje stavka MERGE.