Recette pour importer une table dans la base à partir d'un fichier texte ou csv
Accueil wiki > Recette PostgreSQL > Recette PostgreSQL Import fichier
L'import de tables à partir d'un fichier .csv est possible via une commmande SQL (voir la recette SQL) ou par l'interface JAVA (voir StacomiJava Outils) mais aussi directement via l'interface de PgAdmin, ce qui peut simplifier l'opération, en particulier si la base de données est hébergée dans un serveur externe (plutôt que sur l'ordinateur de travail, "localhost") car il n'est pas nécessaire d'envoyer d'abord le fichier sur le serveur par FTP.
Cela peut être particulièrement utile pour mettre à jour les périodes de fonctionnement des dispositifs de comptage et de franchissement ou les données environnementales, si elles ne sont pas saisies via l'interface Stacomi (java).
1. Création du fichier à importer (PgAdmin? III)
Le plus simple est de télécharger la table à mettre à jour au format .csv, de vider les données et de l'utiliser comme modèle de fichier (noms de colonnes identiques).
Pour télécharger une table au format CSV à partir de l'interface PgAdmin?, il faut utiliser l'éditeur de requêtes SQL (Query) et écrire une requête SELECT ([bouton droit sur la table ou menu "Outils"] > "Scripts" > "Script SELECT") :
SELECT * FROM iav.tj_conditionenvironnementale_env;
puis l'éxécuter et l'exporter : [menu "Fichier"] > "Exporter" (Nom des colonnes, séparateur : ";", unicode : UTF-8, Nom de fichier :...), puis l'ouvrir avec excel/OpenOffice pour remplacer les lignes exportées par les données à ajouter, en conservant leur format d'origine.
Attention : Si la table utilise un numéro auto-incrémenté (serial), noter sa dernière valeur avant de supprimer les lignes exportées et ajouter +1 pour la première ligne à importer. La séquence d'auto-incrémentation de la table prendra en compte les nouvelles lignes lors de l'ouverture de l'interface JAVA.
2. Import dans la table (PgAdmin? III)
Pour importer le fichier sur la base de données (locale ou sur un serveur externe), [bouton droit sur la table ou menu "Outils"] > "Importer..." Choisir le fichier à importer, son format (.csv) et son encodage (UTF-8). Toutes les colonnes sont sélectionnées par défaut. Préciser la présence de la ligne d'en-tête et le délimiteur de champs dans l'onglet "Options diverses". Valider en cliquant sur "IMPORT".
L'import ne s'effectuera pas et une erreur s'affichera si une contrainte n'a pas été respectée, par exemple la duplication d'une clé primaire si le numéro auto-incrémenté existe déjà dans la table. Aucune donnée n'aura été modifiée, il faut corriger le fichier et recommencer.[
Pour plus d'infos
Il est possible de faire l'import des données via une requête sql Recette SQL Imports dans BD_CONTMIG_NAT C'est un peu plus compliqué, surtout quand la base est sur un serveur ...
Pour la forme du fichier à importer, voir Recette Mise en forme de données