Maison >base de données >tutoriel mysql >Comment mettre à jour les lignes Postgres avec les données d'un fichier CSV ?

Comment mettre à jour les lignes Postgres avec les données d'un fichier CSV ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-15 06:13:44147parcourir

How to Update Postgres Rows with Data from a CSV File?

Utiliser des données CSV pour mettre à jour les lignes Postgres : un guide étape par étape

Ce guide explique comment mettre à jour les lignes Postgres existantes à l'aide de données provenant d'un fichier CSV. Le processus comporte plusieurs étapes clés :

1. Établissement d'une table temporaire

Commencez par créer une table temporaire dans votre base de données Postgres. Ce tableau servira de zone de transit pour les données CSV. Le schéma de la table doit refléter la structure de la table cible. Par exemple :

<code class="language-sql">CREATE TEMP TABLE tmp_x (id int, banana text, apple text);</code>

2. Importation de données CSV

Employez la commande COPY pour charger le contenu du fichier CSV dans la table temporaire. N'oubliez pas de remplacer /absolute/path/to/file par le chemin réel du fichier :

<code class="language-sql">COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>

3. Effectuer la mise à jour

Avec les données dans la table temporaire, exécutez une instruction UPDATE pour modifier la table cible. Cet exemple met à jour la colonne banana en fonction des valeurs id correspondantes :

<code class="language-sql">UPDATE tbl
SET    banana = tmp_x.banana
FROM   tmp_x
WHERE  tbl.id = tmp_x.id;</code>

4. Suppression de la table temporaire

Une fois la mise à jour finalisée, supprimez la table temporaire pour récupérer les ressources :

<code class="language-sql">DROP TABLE tmp_x;</code>

Remarques importantes :

  • Autorisations d'accès : La mise à jour des données avec COPY nécessite généralement des privilèges de superutilisateur ou des rôles correctement attribués (en particulier dans Postgres 10 et versions ultérieures).
  • Alternative pour les non-superutilisateurs : La méta-commande copy au sein du client psql fournit une alternative pour les utilisateurs dépourvus de privilèges de superutilisateur.
  • Considérations relatives aux performances : Pour les ensembles de données volumineux, l'optimisation des performances peut impliquer d'augmenter temp_buffers et d'indexer la table temporaire.

Cette méthode offre un moyen efficace de mettre à jour des lignes Postgres spécifiques à l'aide des données d'un fichier CSV.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn