Istruzione SQL MERGE combina INSERIRE , ELIMINARE , E Dichiarazioni di aggiornamento in un'unica query.
indice di stringa Java di
Istruzione MERGE in SQL
L'istruzione MERGE in SQL viene utilizzata per eseguire operazioni di inserimento, aggiornamento ed eliminazione su a tabella di destinazione in base ai risultati di JOIN con a tabella di origine . Ciò consente agli utenti di sincronizzare due tabelle eseguendo operazioni su una tabella in base ai risultati della seconda tabella.
L'istruzione MERGE confronta i dati tra una tabella di origine e una tabella di destinazione in base ai campi chiave specificati. Esegue azioni appropriate come l'inserimento di nuovi record, l'aggiornamento di quelli esistenti e l'eliminazione o la segnalazione dei record non più presenti nell'origine.
Questa istruzione fornisce un modo flessibile per gestire le modifiche ai dati ed è comunemente utilizzata in scenari come la manutenzione Dimensioni che cambiano lentamente ( SCD ) In UNISCI IN target_table
USANDO source_table
ON condizione_unione
QUANDO ABBINATO POI
AGGIORNAMENTO SET colonna1 = valore1 [, colonna2 = valore2 …]
QUANDO NON ABBINATO ALLORA
INSERISCI (colonna1 [, colonna2 …])
VALORI (valore1 [, valore2 …]);
Esempio di istruzione SQL MERGE
Supponiamo che ci siano due tabelle:
- ELENCO_PRODOTTI che è la tabella che contiene i dettagli attuali sui prodotti disponibili con i campi P_ID, P_NAME e P_PRICE corrispondenti all'ID, al nome e al prezzo di ciascun prodotto.
- AGGIORNATO_LIST che è la tabella che contiene i nuovi dettagli sui prodotti disponibili con i campi P_ID, P_NAME e P_PRICE corrispondenti all'ID, nome e prezzo di ciascun prodotto.

L'attività è aggiornare i dettagli dei prodotti in PRODUCT_LIST secondo UPDATED_LIST.
Soluzione
Ora, per spiegare meglio questo esempio, dividiamo l’esempio in passaggi.
imposta in Java
Passo 1: Riconoscere la tabella TARGET e SOURCE
Quindi in questo esempio, poiché viene chiesto di aggiornare i prodotti in PRODUCT_LIST secondo UPDATED_LIST, quindi PRODUCT_LIST fungerà da TARGET e UPDATED_LIST fungerà da tabella SOURCE.

Passaggio 2: riconoscere le operazioni da eseguire.
Ora, come si può vedere, ci sono tre disallineamenti tra la tabella TARGET e la tabella SOURCE, che sono:
1. Il costo del CAFFÈ in TARGET è di 15,00 mentre in FONTE è di 25,00
PRODUCT_LIST 102 COFFEE 15.00 UPDATED_LIST 102 COFFEE 25.00>
2. Non c'è nessun prodotto BISCUIT in SOURCE ma è in TARGET
PRODUCT_LIST 103 BISCUIT 20.00>
3. Non c'è nessun prodotto CHIPS in TARGET ma è in SOURCE
UPDATED_LIST 104 CHIPS 22.00>
Pertanto, è necessario eseguire tre operazioni nel TARGET in base alle discrepanze di cui sopra. Sono:
1. Operazione di AGGIORNAMENTO
102 COFFEE 25.00>
2. Operazione CANCELLAZIONE
confrontare con la stringa
103 BISCUIT 20.00>
3. Operazione INSERISCI
104 CHIPS 22.00>
Passaggio 3: scrivere la query SQL
IL Interrogazione SQL eseguire le operazioni sopra indicate con l'ausilio del Dichiarazione MERGE È:
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 */>
Produzione:
PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00 102 COFFEE 25.00 104 CHIPS 22.00>
Quindi, in questo modo, possiamo eseguire tutte e tre le istruzioni principali in SQL insieme con l'aiuto dell'istruzione MERGE.
Nota: Nella sintassi MERGE è possibile utilizzare qualsiasi nome diverso da destinazione e origine. Sono usati solo per darti una spiegazione migliore.
Punti importanti sull'istruzione SQL MERGE
- L'istruzione SQL MERGE combina INSERIRE , AGGIORNAMENTO , E ELIMINARE operazioni in un'unica istruzione, consentendo un'efficiente sincronizzazione dei dati tra le tabelle di origine e di destinazione.
- Fornisce flessibilità nella personalizzazione di script SQL complessi gestendo più operazioni di manipolazione dei dati in un'unica transazione.
- L'istruzione SQL MERGE viene comunemente utilizzata in scenari come la gestione delle dimensioni a modifica lenta (SCD) nei data warehouse.
- L'indicizzazione corretta, le condizioni di join ottimizzate e il filtraggio della tabella di origine per i record necessari possono ottimizzare le prestazioni dell'istruzione MERGE.