Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je souhaite utiliser la fonction COPY pour charger massivement une table.
Mon problème est que mes données viennent de mon client (application).
Des INSERT multiples sont inimaginables (trop lent !).
Je souhaite donc faire un COPY à partir d'un fichier, mais ce dernier doit impérativement se situer sur le serveur (qui n'a pas de visibilité sur mon application client).
Donc le seul moyen est de créer ce fichier depuis le serveur.
Est-il possible de créer un fichier texte avec une librairie PostgreSQL ?
Merci pour votre aide
Cordialement,
Hors ligne
Cela n'est pas nécessaire : COPY FROM fichier impose effectivement que le fichier soit sur le serveur
Ce n'est pas nécessaire avec COPY FROM STDIN, qui fonctionne sur le réseau
Mieux encore, si vous utilisez psql, vous pouvez utiliser sa commande interne \copy, qui maquillera COPY FROM STDIN pour qu'il lise un fichier local à la machine exécutant psql
Regardez la syntaxe de \copy dans la documentation officielle :
http://docs.postgresql.fr/8.4/app-psql.html
Marc.
Hors ligne
Donc je peux utiliser COPY maTable FROM STDIN monFichier ?
Hors ligne
non, stdin veut dire 'entrée standard'. Ce n'est donc pas un fichier
Ça veut dire que dans psql, vous pouvez faire :
\copy matable FROM monfichier
\copy est une commande interne de psql, qui fait appel à COPY, en lui pasant un fichier local en paramètre. Et donc vous permet je pense de faire ce que vous voulez faire.
Dernière modification par Marc Cousin (09/07/2010 17:33:17)
Marc.
Hors ligne
Lorsque j'effectue la commande suivante dans PgAdmin, côté client :
COPY maTable FROM monFichier
il me dit bien qu'il ne trouve pas le fichier
Si j'effectue la commande suivante :
\copy maTable FROM monFichier
j'ai une erreur de syntaxe sur le caractère "\"
des idées ?
Hors ligne
Oui. Comme je vous l'ai dit, \copy est une commande de psql. Pas de pgadmin.
psql est l'outil en ligne de commande fourni avec PostgreSQL. Il est fait pour ce genre d'opérations.
Marc.
Hors ligne
ok j'ai réussi !:!!
merci :-)
Hors ligne
Pages : 1