Yhteenveto: Tässä opetusohjelmassa opit käyttämään Oracle MERGE
-lauseketta päivityksen tai lisäyksen suorittamiseen tiedot määritetyn ehdon perusteella.
Johdanto Oracle MERGE -käskyyn
Oracle MERGE
-käsky valitsee tiedot yhdestä tai useammasta lähdetaulukosta ja päivittää tai lisää sen kohdetaulukkoon. MERGE
-lausekkeen avulla voit määrittää ehdon, jolla määritetään, päivitetäänkö tietoja kohdetaulukkoon vai lisätäänkö siihen tietoja.
Seuraava kuvaa Oraclen syntaksia MERGE
-lauseke:
Tarkastellaan lauseketta MERGE
yksityiskohtaisesti:
Määritä ensin kohdetaulukko (target_table
), jonka haluat päivittää tai lisätä lausekkeeseen INTO
.
Toiseksi, määritä tietolähde (source_table
), joka päivitetään tai lisätään lausekkeeseen USING
.
Kolmanneksi määritä hakuehto, jossa yhdistämistoiminto joko päivittää tai lisää ON
-lausekkeen.
Oracle arvioi jokaisen kohdetaulukon rivin hakuehdon:
- Jos tulos on tosi, Oracle päivittää rivin vastaavilla tiedoilla lähdetaulukosta.
- Jos tulos on väärä y riviä, sitten Oracle lisää vastaavan rivin lähdetaulukosta kohdetaulukkoon.
Lauseke MERGE
on kätevä, kun haluat yhdistää useita INSERT
, UPDATE
ja DELETE
lauseita yhdessä toiminnossa.
Koska MERGE
on deterministinen käsky, et voi päivittää samaa kohdetaulukon riviä useita kertoja samassa MERGE
-lausekkeessa .
Voit lisätä valinnaisen DELETE WHERE
-lausekkeen MATCHED
-lausekkeeseen puhdistaaksesi yhdistämistoiminnon jälkeen. Lauseke DELETE
poistaa vain kohdetaulukon rivit, jotka vastaavat sekä ON
että DELETE WHERE
lausekkeet.
Oracle MERGE -edellytykset
MERGE
-lausekkeen suorittamiseksi sinulla on oltava INSERT
– ja UPDATE
-objektioikeudet. Jos käytät lauseketta DELETE
, kohdetaulukossa on oltava myös objektin DELETE
-oikeus.
Oracle Yhdistä esimerkki
Oletetaan, että meillä on kaksi taulukkoa: members
ja member_staging
.
Me lisää uusi rivi members
-taulukkoon aina, kun meillä on uusi jäsen. Tämän jälkeen members
-taulukon tiedot yhdistetään member_staging
-taulukon tietoihin.
Seuraavat lauseet luo taulukot members
ja member_staging
:
Seuraavat INSERT
lauseet lisäävät näytetietoja taulukoihin members
ja member_staging
:
Kun päivitetään tietoja members
-taulukko member_staging
-taulukkoon, meidän tulisi suorittaa seuraavat toiminnot:
- Päivitämme rivit jäsenetunnuksilla 1, 3 , 4 ja 6, koska näiden jäsenten sijoitus tai sukunimi näissä taulukoissa on erilainen.
- Lisätään rivit, joiden jäsenet ovat 7-10, koska nämä rivit ovat
members
-taulukossa, mutta eimember_staging
-taulukossa.
Yhteensä 8 riviä tulisi yhdistää.
Seuraa ing on lauseke MERGE
, joka suorittaa kaikki nämä toiminnot yhdessä laukauksessa.
Yhdistämislauseke vertaa kutakin riviä members
-taulukko member_staging
-taulukon jokaisella rivillä member_id
-sarakkeiden arvojen perusteella (katso ON
-lauseke yllä).
Jos molempien taulukoiden member_id
-sarakkeiden arvot ovat samat, MERGE
-lauseke päivittää etunimen, sukunimen ja listan members
-taulukosta member_staging
-taulukkoon vain, jos ensimmäisen molempien taulukoiden nimi, sukunimi tai sijoitus sarakkeet ovat erilaiset.
Muuten se lisää rivin members
taulukosta member_staging
taulukko.
Oracle palautti 8 riviä yhdistettynä odotetulla tavalla.
Tässä opetusohjelmassa olet oppinut käyttämään Oracle-sovellusta MERGE
-lauseke tietojen päivittämiseksi tai lisäämiseksi määritetyn ehdon perusteella.
- Oliko tästä opetusohjelmasta hyötyä?
- KylläEi