Esecuzione di un'operazione di unione tramite sostituzione di righe esistenti - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione di un'operazione di unione tramite sostituzione di righe esistenti

Quando esegui l'operazione di unione descritta nella procedura, inserisci tutti i passaggi, tranne la creazione e l'eliminazione della tabella di gestione temporanea, in un'unica transazione. Verrà eseguito il rollback della transazione se una fase restituisce un errore. L'utilizzo di una singola transazione riduce anche il numero di commit, risparmiando tempo e risorse.

Per eseguire un'operazione di unione tramite sostituzione di righe esistenti
  1. Creare una tabella di gestione temporanea e quindi popolarla con i dati da unire, come mostrato nel seguente pseudocodice.

    CREATE temp table stage (like target); INSERT INTO stage SELECT * FROM source WHERE source.filter = 'filter_expression';
  2. Utilizzate MERGE per eseguire un'unione interna con la tabella intermedia per aggiornare le righe della tabella di destinazione che corrispondono alla tabella intermedia, quindi inserite tutte le righe rimanenti nella tabella di destinazione che non corrispondono alla tabella intermedia.

    Ti consigliamo di eseguire le operazioni di aggiornamento e inserimento in un unico comando MERGE.

    MERGE INTO target USING stage [optional alias] on (target.primary_key = stage.primary_key) WHEN MATCHED THEN UPDATE SET col_name1 = stage.col_name1 , col_name2= stage.col_name2, col_name3 = {expr} WHEN NOT MATCHED THEN INSERT (col_name1 , col_name2, col_name3) VALUES (stage.col_name1, stage.col_name2, {expr});
  3. Rilasciare la tabella di gestione temporanea.

    DROP TABLE stage;