Mise à jour et insertion de nouvelles données - 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.

Mise à jour et insertion de nouvelles données

Vous pouvez ajouter de manière efficace de nouvelles données à une table existante à l’aide de la commande MERGE. Effectuez une opération de fusion en créant une table intermédiaire, puis utilisez l’une des méthodes décrites dans cette section pour mettre à jour la table cible à partir de la table intermédiaire. Pour en savoir plus sur la commande MERGE, consultez MERGE.

Exemples de fusion utilise un exemple de jeu de données pour Amazon Redshift, appelé jeu de données TICKIT. Comme condition préalable, vous pouvez configurer les tables et les données TICKIT en suivant les instructions disponibles dans Démarrage avec les tâches courantes liées aux bases de données. Des informations plus détaillées sur le jeu de données en exemple sont disponibles dans la base de données en exemple.

Méthode de fusion 1 : remplacement des lignes existantes

Si vous remplacez toutes les colonnes de la table cible, le moyen le plus rapide d’effectuer une fusion est de remplacer les lignes existantes. La table cible est analysée une seule fois, et une jointure interne est utilisée pour supprimer les lignes qui sont appelées à être mises à jour. Une fois que les lignes ont été supprimées, elles sont remplacées par de nouvelles lignes via une opération d’insertion unique à partir de la table intermédiaire.

Utilisez cette méthode si toutes les conditions suivantes sont vraies :

  • Votre table cible votre table intermédiaire contiennent les mêmes colonnes.

  • Vous avez l’intention de remplacer toutes les données des colonnes de la table cible par toutes les colonnes de la table intermédiaire.

  • Vous allez utiliser toutes les lignes de la table intermédiaire dans la fusion.

Si l’un de ces critères ne s’applique pas, utilisez la méthode de fusion 2 : spécification d’une liste de colonnes sans utiliser MERGE, décrite dans la section suivante.

Si vous n’utilisez pas toutes les lignes de la table intermédiaire, filtrez les instructions DELETE et INSERT en utilisant une clause WHERE pour ignorer les lignes qui ne sont pas modifiées. Cependant, si la plupart des lignes de la table intermédiaire ne prennent pas part à la fusion, nous recommandons d’exécuter les commandes UPDATE et INSERT en étapes distinctes, comme décrit ultérieurement dans cette section.

Méthode de fusion 2 : spécification d’une liste de colonnes sans utiliser MERGE

Utilisez cette méthode pour mettre à jour des colonnes spécifiques de la table cible au lieu de remplacer des lignes entières. Cette méthode prend plus de temps que la méthode précédente, car elle nécessite une étape de mise à jour supplémentaire et elle n’utilise pas la commande MERGE. Utilisez cette méthode si l’une des conditions suivantes est vraie :

  • Certaines colonnes de la table cible ne doivent pas être mises à jour.

  • La plupart des lignes de la table intermédiaire ne sont pas utilisées dans les mises à jour.