IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

COPY FROM selectif


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2003
    Messages : 22
    Points : 25
    Points
    25
    Par défaut COPY FROM selectif
    Bonjour à tous,

    J'ai des données à importer dans une bdd postgresql et j'ai une question de base pour laquelle je n'ai pas trouvé de réponse.
    Mes données sont dans un fichier texte comprennant une vingtaine de colonnes séparées par des |
    Je voudrais importer 3 de ces 20 colonnes dans une table.
    Est-il possible de spécifier quelles colonnes du fichier texte sont
    à utiliser pour approvisionner la table ?
    J'ai vu que cela est possible avec COPY TO, qu'en est-il avec COPY FROM ?
    Merci pour toute info

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Points : 30
    Points
    30

  3. #3
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    euh...Dites moi si je suis aveugle mais cette doc je l'ai parcouru plusieurs fois et je n'ai pas vu qu'on pouvait faire un COPY FROM en omettant des colonnes du fichier d'entrée...

    Si ?

    EDIT :

    If a list of columns is specified, COPY will only copy the data in the specified columns to or from the file. If there are any columns in the table that are not in the column list, COPY FROM will insert the default values for those columns.
    En effet je suis aveugle, il suffit de spécifier la liste des colonnes...désolé !

  4. #4
    Membre averti

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Points : 404
    Points
    404
    Par défaut
    une méthode rapide, est de créer une table temporaire qui contiendra autant de colonne que dans le fichier, ensuite charger le fichier dans la table et remplir la table final avec certaine données de la table temporaire avec la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO table1 (champ1, champ2, champ3) 
    SELECT tmp_champ1, tmp_champ2, tmp_champ3 FROM tmp_table WHERE ... ;
    Le WHERE n'est pas nécéssaire si l'on veux tous les enregistrements.
    Christophe Chauvet
    Consultant Odoo
    Python / PostgreSQL

  5. #5
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Cette méthode est-elle plus rapide qu'un copy from pour lequel on précise les colonnes ?

  6. #6
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    salut pourrais tu poster un exemple de COPY FROM avec la liste des champs du fichier CSV à importer?

    merci ecnore car dans la doc je n'ai pas vu grand chose...jdois avoir des problemes de vue.....

  7. #7
    Membre habitué Avatar de Davboc
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 266
    Points : 168
    Points
    168
    Par défaut
    Désolé j'ai pas ça sur moi en ce moment, mais j'ai trouvé ça sur internet donc tu devrais pouvoir le trouver également...

    est ton ami

  8. #8
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    là est le probleme lol...gogole n'est pas mon ami pour cette aventure.

    J'ai chercher et vu mais ça correspondait pas à ce que je voulais.

    Ce que je voudrais faire c'est choisir les colonnes du fichier csv à importer dans ma base de données via la premiere ligne du fichier qui contiendrait les noms des champs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copy from avec plus de champs dans csv que dans la table
    Par Débéa dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 20/10/2009, 08h07
  2. Réponses: 1
    Dernier message: 03/05/2009, 21h43
  3. copy from serveur to the local machin
    Par dajij dans le forum C++
    Réponses: 6
    Dernier message: 02/10/2008, 21h42
  4. Commande COPY FROM
    Par jan0 dans le forum Administration
    Réponses: 11
    Dernier message: 22/12/2006, 15h44
  5. [pgadminIII] copy from
    Par funkadelic dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 28/06/2005, 20h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo