Exécution d’une opération de fusion par remplacement des lignes existantes - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exécution d’une opération de fusion par remplacement des lignes existantes

Exécutez la totalité de l’opération de fusion détaillée dans la procédure, sauf la création et la suppression de la table intermédiaire temporaire, dans une même transaction. La transaction est annulée en cas d’échec d’une étape. L’utilisation d’une seule transaction réduit aussi le nombre de validations, ce qui permet de gagner du temps et d’économiser des ressources.

Pour exécuter une opération de fusion par remplacement des lignes existantes
  1. Créez une table intermédiaire, puis complétez-la avec les données à fusionner, comme illustré dans le pseudocode suivant.

    CREATE temp table stage (like target); INSERT INTO stage SELECT * FROM source WHERE source.filter = 'filter_expression';
  2. MERGEUtilisez-le pour effectuer une jointure interne avec la table intermédiaire afin de mettre à jour les lignes de la table cible qui correspondent à la table intermédiaire, puis insérez toutes les lignes restantes dans la table cible qui ne correspondent pas à la table intermédiaire.

    Nous vous recommandons d'exécuter les opérations de mise à jour et d'insertion en une seule MERGE commande.

    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. Supprimez la table intermédiaire.

    DROP TABLE stage;