Come posso copiare dal file locale al DB remoto in PostgreSQL? [chiuso]


9

Sono un principiante in psql e ho bisogno di aiuto. Come posso caricare un CSV locale su un DB remoto?

Sto usando il seguente comando

\COPY test(user_id, product_id, value) 
      FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;

ma questo cerca il file sul DB remoto mentre devo farlo sul mio PC locale.


4
\copylegge un file locale (è un psqlcomando e può essere utilizzato solo dall'interno psql). COPYtuttavia (notare la mancante ``) leggerà il file sul server.
a_horse_with_no_name

quindi non c'è modo di farlo? devo copiare il file sul server remoto?
user22149

c'è qualche differenza in copia e \ copia? scusa sono davvero nuovo in psql so solo oracolo lì posso farlo senza alcun problema
user22149

Bene, la differenza è che uno legge il file sul server e l'altro sta leggendo il file sul client. Ovviamente leggere il file sul server sarà più veloce.
a_horse_with_no_name

1
@ user22149 Utilizzare una scheda letterale o E'\t'. Ma la scheda dovrebbe essere quella predefinita se non specifichi comunque un delim.
Craig Ringer,

Risposte:


5

Ci sono due possibilità qui.

  1. Se stai usando psql, allora \ copy è il modo corretto di fare le cose come dici.

  2. Se stai usando un programma client che hai creato, allora devi farlo

    COPY FROM STDIN.....

E quindi inserire il file (consultare la documentazione sul comando COPIA .

Il comando COPIA è una bestia leggermente strana. È l'unico comando che PostgreSQL attualmente supporta da Quel e quindi è sia non standard, sia basato su qualcosa di un paradigma diverso rispetto al resto dei comandi. Per questo motivo è importante leggere i documenti relativamente attentamente su questo comando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.