logo

SQL MERGE -lausunto

SQL MERGE -lausunto yhdistää LISÄÄ , POISTAA , ja PÄIVITYS lausunnot yhteen kyselyyn.

lista lajittele java

MERGE-lauseke SQL:ssä

SQL:n MERGE-käskyä käytetään lisäys-, päivitys- ja poistotoimintojen suorittamiseen a tavoitetaulukko tulosten perusteella JOIN with a lähdetaulukko . Tämän avulla käyttäjät voivat synkronoida kaksi taulukkoa suorittamalla toimintoja yhdelle taulukolle toisen taulukon tulosten perusteella.



MERGE-käsky vertaa tietoja lähdetaulukon ja kohdetaulukon välillä määritettyjen avainkenttien perusteella. Se suorittaa tarvittavat toimenpiteet, kuten uusien tietueiden lisääminen, olemassa olevien tietueiden päivittäminen ja tietueiden poistaminen tai merkitseminen, joita ei enää ole lähteessä.

Tämä lausunto tarjoaa joustavan tavan hallita tietojen muutoksia, ja sitä käytetään yleisesti skenaarioissa, kuten ylläpidossa Hitaasti muuttuvat mitat ( SCD ) sisään Yhdistä kohdetaulukkoon
KÄYTETÄÄN lähdetaulukkoa
PÄÄLLÄ yhdistämisehto
KUN OTSI SIIN
PÄIVITYS ASETUKSET sarake1 = arvo1 [, sarake2 = arvo2 …]
KUN EI OLE SOPIA SIIN
INSERT (sarake1 [, sarake2 …])
ARVOT (arvo1 [, arvo2 …]);

Esimerkki SQL MERGE -lausekkeesta

Oletetaan, että on kaksi taulukkoa:



  • TUOTELISTA joka on taulukko, joka sisältää nykyiset tiedot saatavilla olevista tuotteista kentillä P_ID, P_NAME ja P_PRICE, jotka vastaavat kunkin tuotteen tunnusta, nimeä ja hintaa.
  • UPDATED_LIST joka on taulukko, joka sisältää uudet tiedot saatavilla olevista tuotteista kentillä P_ID, P_NAME ja P_PRICE, jotka vastaavat kunkin tuotteen tunnusta, nimeä ja hintaa.

kaksi pöytää


Tehtävänä on päivittää PRODUCT_LIST -luettelossa olevien tuotteiden tiedot listan UPDATED_LIST mukaisesti.

Ratkaisu



Nyt selittääksemme tätä esimerkkiä paremmin, jaetaan esimerkki vaiheisiin.

Vaihe 1: Tunnista TARGET- ja SOURCE-taulukot

Joten tässä esimerkissä, koska sitä pyydetään päivittämään tuotteen PRODUCT_LIST tuotteet UPDATED_LIST-luettelon mukaisesti, PRODUCT_LIST toimii KOHDE-taulukona ja UPDATED_LIST toimii SOURCE-taulukona.

kohde- ja lähdetaulukko

merkkijonomuotoilija

Vaihe 2: Tunnista suoritettavat toiminnot.

Nyt voidaan nähdä, että TARGET- ja SOURCE-taulukoiden välillä on kolme epäsopivuutta, jotka ovat:

1. KAHVIN hinta TARGETissa on 15,00, kun taas SOURCEssa se on 25,00

 PRODUCT_LIST 102 COFFEE 15.00   UPDATED_LIST 102 COFFEE 25.00>

2. SOURCEssa ei ole BISCUIT-tuotetta, mutta se on TARGETissa

 PRODUCT_LIST 103 BISCUIT 20.00>

3. TARGETissa ei ole CHIPS-tuotetta, mutta se on SOURCEssa

 UPDATED_LIST 104 CHIPS 22.00>

Siksi TARGETissa on tehtävä kolme toimintoa yllä olevien erojen mukaisesti. He ovat:

1. PÄIVITYS-toiminto

102 COFFEE 25.00>

2. POISTA-toiminto

char int javaan
103 BISCUIT 20.00>

3. INSERT-toiminto

104 CHIPS 22.00>

Vaihe 3: Kirjoita SQL-kysely

The SQL-kysely suorittaa edellä mainitut toiminnot MERGE lausunto On:

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 */>

Lähtö:

 PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00  102 COFFEE 25.00 104 CHIPS 22.00>

Joten tällä tavalla voimme suorittaa kaikki nämä kolme pääkäskyä SQL:ssä yhdessä MERGE-käskyn avulla.

Huomautus: MERGE-syntaksissa voidaan käyttää mitä tahansa muuta nimeä kuin kohde ja lähde. Niitä käytetään vain antamaan sinulle parempi selitys.

Tärkeitä kohtia SQL MERGE -lausunnosta

  • SQL MERGE -käsky yhdistää LISÄÄ , PÄIVITTÄÄ , ja POISTAA toiminnot yhteen lauseeseen, mikä mahdollistaa tehokkaan tietojen synkronoinnin lähde- ja kohdetaulukoiden välillä.
  • Se tarjoaa joustavuutta monimutkaisten SQL-skriptien mukauttamiseen käsittelemällä useita tiedonkäsittelytoimintoja yhdessä tapahtumassa.
  • SQL MERGE -käskyä käytetään yleisesti skenaarioissa, kuten hitaasti muuttuvien dimensioiden (SCD) ylläpito tietovarastoissa.
  • Oikea indeksointi, optimoidut liitosehdot ja tarvittavien tietueiden lähdetaulukon suodatus voivat optimoida MERGE-käskyn suorituskyvyn.