-
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:
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.
-
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é.
-
Oui je viens d'essayer avec exel mais je n'y suis pas arriver. Comment faire ?
-
Sur quelle partie exactement de la manipulation tu as besoin d'aide?
-
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"
-
COPY accepte la tabulation comme séparateur, c'est même le séparateur par défaut.
-
Oui mais il y a des lignes qui ne sont pas séparées, bon je vais réessayer ^^
-
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 :).