Export ed Import di campi e dati da una tabella in output su e da file

Ho bisogno di stampare i dati una o più colonne di una tabella su un file di testo in postgres, penso basti una semplice query sulla tabella del tipo

SELECT "column_name" FROM "table_name"

Credo che questa operazione si possa fare, ma non ricordo esattamente la sintassi. In altre parole non devo fare altro che un export dei dati (o dei campi) di una tabella PostgreSQL su file, e mi interesserebbe anche sapere come fare l'import dei dati da un file in una tabella. Qualcuno mi può aiutare?

Risolta 5
PostgreSQL 30-03-2020 2 Risposte 6241 Visite +3

Risposte ( 2 approvate )

  1. Alberto Orfiesi
    +2
    30-03-2020 17:51:00
    Rispondi

    Per fare quello che chiedi in PostgreSQL devi usare COPY, ti consente di copiare in output i 'dati' dalle tabelle ad un file.

    Se vuoi copiare un'intera tabella ti basta specificarne il nome, in questo modo:

    COPY myTable TO '/mypath/table_data.txt';

     

    Puoi anche copiare in un file il risultato di una query SQL, così:

    COPY (SELECT column FROM table WHERE table.price>20) TO  '/path/query_resultsets.txt';

    davvero comodo per fare un export dei dati in un file, non credi!

  2. Arturo Padova
    +1
    30-03-2020 18:01:25
    Rispondi

    Oltre a quanto illustrato dal collega Orfiesi per fare l'export su file, aggiungo che la COPY è comoda anche per fare l'operazione inversa, ossia l'import dei dati da un file ad una tabella di PostgreSQL.

     

    La sintassi per l'import è la seguente:

    COPY myTable FROM '/path/table_data.txt';

     

    Nel fare l'import si usano spesso i file csv (comma separated value), e puoi utilizzarli anche tu specificando nella COPY delle opzioni aggiuntive che indicano il separatore dei dati letti, in questo modo:

    COPY myTable TO '/path/table_data.csv' DELIMITER ';' CSV;

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

Marco Biellesi

Marco Biellesi

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva