MERGE INTO - Amazon Athena

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.

MERGE INTO

Mise à jour, suppression ou insertion conditionnelle de lignes dans une table Iceberg. Une seule instruction peut combiner des actions de mise à jour, de suppression et d'insertion. Pour la syntaxe, consultez MERGE INTO.

Note

MERGE INTO est transactionnel et n'est pris en charge que pour les tables Apache Iceberg dans la version 3 du moteur Athena.

L'exemple suivant supprime tous les clients de la table t qui se trouvent dans la table source s.

MERGE INTO accounts t USING monthly_accounts_update s ON t.customer = s.customer WHEN MATCHED THEN DELETE

L'exemple suivant met à jour la table cible t avec les informations des clients provenant de la table source s. Pour les lignes de clients dans la table t qui ont des lignes de clients correspondantes dans la table s, l'exemple incrémente les achats dans la table t. Si la table t ne correspond pas à une ligne de client dans la table s, l'exemple insère la ligne de client de la table s dans la table t.

MERGE INTO accounts t USING monthly_accounts_update s ON (t.customer = s.customer) WHEN MATCHED THEN UPDATE SET purchases = s.purchases + t.purchases WHEN NOT MATCHED THEN INSERT (customer, purchases, address) VALUES(s.customer, s.purchases, s.address)

L'exemple suivant met à jour de manière conditionnelle la table cible t avec les informations de la table source s. L'exemple supprime toute ligne cible correspondante dont l'adresse source est Centreville. Pour toutes les autres lignes correspondantes, l'exemple ajoute les achats source et définit l'adresse cible comme adresse source. S'il n'y a aucune correspondance dans la table cible, l'exemple insère la ligne de la table source.

MERGE INTO accounts t USING monthly_accounts_update s ON (t.customer = s.customer) WHEN MATCHED AND s.address = 'Centreville' THEN DELETE WHEN MATCHED THEN UPDATE SET purchases = s.purchases + t.purchases, address = s.address WHEN NOT MATCHED THEN INSERT (customer, purchases, address) VALUES(s.customer, s.purchases, s.address)