SQL MERGE-erklæring kombinerer SETT INN , SLETT , og OPPDATER uttalelser i ett enkelt søk.
finn i streng c++
MERGE Statement i SQL
MERGE-setning i SQL brukes til å utføre innsetting, oppdatering og sletting av en måltabell basert på resultatene av JOIN med en kildetabell . Dette lar brukere synkronisere to tabeller ved å utføre operasjoner på én tabell basert på resultater fra den andre tabellen.
MERGE-setningen sammenligner data mellom en kildetabell og en måltabell basert på spesifiserte nøkkelfelt. Den utfører passende handlinger som å sette inn nye poster, oppdatere eksisterende, og slette eller flagge poster som ikke lenger finnes i kilden.
Denne erklæringen gir en fleksibel måte å administrere dataendringer på og brukes ofte i scenarier som vedlikehold Sakte skiftende dimensjoner ( SCD ) i SLUT TIL måltabell
BRUKER kildetabell
PÅ merge_condition
NÅR SAMMEN DETTE
OPPDATERING SET kolonne1 = verdi1 [, kolonne2 = verdi2 …]
NÅR IKKE SAMMEN SÅ
INSERT (kolonne1 [, kolonne2 …])
VERDIER (verdi1 [, verdi2 …]);
Eksempel på SQL MERGE-setning
Anta at det er to tabeller:
- PRODUKTLISTE som er tabellen som inneholder gjeldende detaljer om produktene som er tilgjengelige med feltene P_ID, P_NAME og P_PRICE som tilsvarer ID, navn og pris for hvert produkt.
- OPPDATERT_LISTE som er tabellen som inneholder de nye detaljene om produktene som er tilgjengelige med feltene P_ID, P_NAME og P_PRICE som tilsvarer ID, navn og pris for hvert produkt.

Oppgaven er å oppdatere detaljene for produktene i PRODUCT_LIST i henhold til UPDATED_LIST.
Løsning
ascii-tabell i c
For å forklare dette eksemplet bedre, la oss dele opp eksemplet i trinn.
Trinn 1: Gjenkjenne TARGET- og SOURCE-tabellen
Så i dette eksemplet, siden det blir bedt om å oppdatere produktene i PRODUCT_LIST i henhold til UPDATED_LIST, vil derfor PRODUCT_LIST fungere som TARGET og UPDATED_LIST vil fungere som SOURCE-tabellen.

Trinn 2: Gjenkjenne operasjonene som skal utføres.
Nå som det kan sees at det er tre uoverensstemmelser mellom TARGET- og SOURCE-tabellen, som er:
1. Kostnaden for KAFFE i TARGET er 15,00 mens den i SOURCE er 25,00
PRODUCT_LIST 102 COFFEE 15.00 UPDATED_LIST 102 COFFEE 25.00>
2. Det er ikke noe KEKS-produkt i SOURCE, men det er i TARGET
PRODUCT_LIST 103 BISCUIT 20.00>
3. Det er ikke noe CHIPS-produkt i TARGET, men det er i SOURCE
UPDATED_LIST 104 CHIPS 22.00>
Derfor må tre operasjoner utføres i TARGET i henhold til avvikene ovenfor. De er:
1. OPPDATERING
102 COFFEE 25.00>
2. SLETT-operasjon
for loop java
103 BISCUIT 20.00>
3. INSERT operasjon
104 CHIPS 22.00>
Trinn 3: Skriv SQL-spørringen
De SQL-spørring å utføre de ovennevnte operasjonene ved hjelp av MERGE-uttalelse er:
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 */>
Produksjon:
PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00 102 COFFEE 25.00 104 CHIPS 22.00>
Så på denne måten kan vi utføre alle disse tre hovedsetningene i SQL sammen ved hjelp av MERGE-setningen.
Merk: Ethvert navn annet enn mål og kilde kan brukes i MERGE-syntaksen. De brukes kun for å gi deg en bedre forklaring.
Viktige punkter om SQL MERGE-erklæring
- SQL MERGE-setningen kombineres SETT INN , OPPDATER , og SLETT operasjoner i én enkelt setning, noe som muliggjør effektiv datasynkronisering mellom kilde- og måltabeller.
- Det gir fleksibilitet i å tilpasse komplekse SQL-skript ved å håndtere flere datamanipulasjonsoperasjoner i en enkelt transaksjon.
- SQL MERGE-setningen brukes ofte i scenarier som vedlikehold av Slowly Changing Dimensions (SCD) i datavarehus.
- Riktig indeksering, optimaliserte sammenføyningsforhold og filtrering av kildetabellen for nødvendige poster kan optimalisere ytelsen til MERGE-setningen.