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 :

Problème commande copy


Sujet :

PostgreSQL

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Points : 626
    Points
    626
    Par défaut Problème commande copy
    Bonjour,

    J'ai une table qui a 4 colonnes : id, champs1, champs2, champs3

    Et J'ai 3 fichiers sur mon ordinateur. Lorsque j'utilise la commande COPY sur un champ tout se passe bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COPY matable (champs) FROM 'chemin\fichier.txt';
    Mais lorsque je fais une autre COPY, par exemple sur le champs2, alors que champs1 est déjà rempli, la COPY du champs2 va commencer à la dernière ligne de la table.

    Exemple : Si j'ai 15 lignes en faisant la COPY sur le champs1, la COPY sur champs2 commencera à la ligne 15.

    J'aimerais que toutes les COPY commencent à la première ligne. Comment faire ?

    Merci d'avance.

    John.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    COPY va effectivement créer une nouvelle ligne pour chaque ligne du fichier d'entrée,car il est fait pour insérer des lignes et non pas mettre à jour des lignes existantes.

    La solution la plus simple est sans doute de joindre les 3 fichiers dans un seul fichier avec 3 colonnes, et d'incorporer ce fichier là avec COPY en une seule fois.
    Avec un tableur, c'est l'affaire de 3 copier-coller, un par colonne.

    A l'inverse en SQL pour recoller les morceaux de 3 imports distincts, c'est nettement plus compliqué.

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Points : 626
    Points
    626
    Par défaut
    Oui je viens d'essayer avec exel mais je n'y suis pas arriver. Comment faire ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Sur quelle partie exactement de la manipulation tu as besoin d'aide?

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Points : 626
    Points
    626
    Par défaut
    Sur exel, je fais fichier / ouvrir, j'ouvre mon fichier texte, je le mets dans la colonne A puis j'ouvre l'autre fichier texte => colonne B et pareil pour le 3eme fichier.

    Mais les fichiers sont séparer par des tabulations, même si je sélectionne "virgule"

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    COPY accepte la tabulation comme séparateur, c'est même le séparateur par défaut.

  7. #7
    Membre confirmé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Points : 626
    Points
    626
    Par défaut
    Oui mais il y a des lignes qui ne sont pas séparées, bon je vais réessayer ^^

  8. #8
    Membre confirmé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Points : 626
    Points
    626
    Par défaut
    Donc à vue d’œil, on dirait que les tabulations sont mal gérées, mais en faites, lorsque j'importe avec la commande COPY, postgres repère bien les 'délimiter".

    Merci .

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

Discussions similaires

  1. Problème sur la commande COPY depuis un programme Java
    Par klereth dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/02/2006, 14h14
  2. [VB]Problème de copie
    Par sterepathie dans le forum VB 6 et antérieur
    Réponses: 27
    Dernier message: 26/01/2006, 17h10
  3. [XSL] problème avec copy espace de nom
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2005, 15h18
  4. Problème de copie de string dans string
    Par kazarn dans le forum SL & STL
    Réponses: 17
    Dernier message: 15/03/2005, 18h35

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