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
Libérer: 2025-01-15 06:13:44
original
218 Les gens l'ont consulté

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 :

CREATE TEMP TABLE tmp_x (id int, banana text, apple text);
Copier après la connexion

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 :

COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv);
Copier après la connexion

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 :

UPDATE tbl
SET    banana = tmp_x.banana
FROM   tmp_x
WHERE  tbl.id = tmp_x.id;
Copier après la connexion

4. Suppression de la table temporaire

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

DROP TABLE tmp_x;
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal