Declaració SQL MERGE combina INSERT , ELIMINAR , i ACTUALITZACIÓ declaracions en una sola consulta.
edat de sara ali khan
Declaració MERGE en SQL
La instrucció MERGE en SQL s'utilitza per dur a terme operacions d'inserció, actualització i supressió en a taula de destinació basat en els resultats de JOIN with a taula font . Això permet als usuaris sincronitzar dues taules realitzant operacions en una taula en funció dels resultats de la segona taula.
La instrucció MERGE compara dades entre una taula d'origen i una taula de destinació en funció dels camps clau especificats. Realitza accions adequades com inserir registres nous, actualitzar els existents i suprimir o marcar els registres que ja no estan presents a la font.
Aquesta declaració proporciona una manera flexible de gestionar els canvis de dades i s'utilitza habitualment en escenaris com el manteniment Dimensions que canvien lentament ( SCD ) en FUSIONA A TAULA_objectiu
UTILITZAR la taula_origen
ON merge_condition
QUAN COPARAIX LLAVORS
UPDATE SET column1 = value1 [, column2 = value2 ...]
QUAN NO COINCIDEIX LLAVORS
INSERT (columna1 [, columna2...])
VALORS (valor1 [, valor2 …]);
Exemple d'instrucció SQL MERGE
Suposem que hi ha dues taules:
- PRODUCT_LIST que és la taula que conté els detalls actuals sobre els productes disponibles amb els camps P_ID, P_NAME i P_PRICE corresponents a l'ID, nom i preu de cada producte.
- ACTUALITZADA_LISTA que és la taula que conté els detalls nous sobre els productes disponibles amb els camps P_ID, P_NAME i P_PRICE corresponents a l'ID, nom i preu de cada producte.

La tasca és actualitzar els detalls dels productes de la PRODUCT_LIST segons la UPDATED_LIST.
Solució
Ara, per explicar millor aquest exemple, dividim l'exemple en passos.
en Java regex
Pas 1: reconeixeu la taula TARGET i SOURCE
Per tant, en aquest exemple, com que es demana que actualitzeu els productes de PRODUCT_LIST segons UPDATED_LIST, per tant, PRODUCT_LIST actuarà com a TARGET i UPDATED_LIST actuarà com a taula SOURCE.

Pas 2: Reconèixer les operacions a realitzar.
Ara, com es pot veure, hi ha tres desajustos entre la taula TARGET i SOURCE, que són:
1. El cost del CAFÉ a TARGET és de 15,00 mentre que a SOURCE és de 25,00
PRODUCT_LIST 102 COFFEE 15.00 UPDATED_LIST 102 COFFEE 25.00>
2. No hi ha cap producte BISCUIT a SOURCE però està a TARGET
PRODUCT_LIST 103 BISCUIT 20.00>
3. No hi ha cap producte CHIPS a TARGET però està a SOURCE
UPDATED_LIST 104 CHIPS 22.00>
Per tant, cal fer tres operacions al TARGET segons les discrepàncies anteriors. Ells són:
1. Operació ACTUALITZACIÓ
102 COFFEE 25.00>
2. Operació DELETE
mètode de subcadena java
103 BISCUIT 20.00>
3. Operació INSERT
104 CHIPS 22.00>
Pas 3: escriviu la consulta SQL
El Consulta SQL per realitzar les operacions esmentades amb l'ajuda de la Declaració MERGE és:
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 */>
Sortida:
PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00 102 COFFEE 25.00 104 CHIPS 22.00>
Així, d'aquesta manera, podem realitzar totes aquestes tres declaracions principals en SQL juntament amb l'ajuda de la instrucció MERGE.
Nota: Qualsevol nom que no sigui origen i destinació es pot utilitzar a la sintaxi MERGE. S'utilitzen només per donar-vos una millor explicació.
Aspectes importants sobre la instrucció SQL MERGE
- La instrucció SQL MERGE combina INSERT , ACTUALITZACIÓ , i ELIMINAR operacions en una sola instrucció, que permet una sincronització eficient de dades entre les taules d'origen i de destinació.
- Proporciona flexibilitat per personalitzar scripts SQL complexos mitjançant la gestió de múltiples operacions de manipulació de dades en una sola transacció.
- La instrucció SQL MERGE s'utilitza habitualment en escenaris com el manteniment de dimensions de canvi lent (SCD) als magatzems de dades.
- La indexació adequada, les condicions d'unió optimitzades i el filtratge de la taula d'origen per als registres necessaris poden optimitzar el rendiment de la instrucció MERGE.