In questo tutorial vediamo come esportare i dati di una tabella di PostgreSQL in un file CSV. Utiliziamo come esempio una tabella denominata jobs strutturata nel seguente modo:
|id | status | number | name | client_name
----+--------+--------+-------+-------------
1 | active | J001 | Task1 | ACME Ltd
2 | active | J002 | Task2 | Bugs Ltd
(2 rows)
Esportare tutta la tabella a CSV usando COPY
Il tutto può essere risolto grazie al comando COPY che applicato alla nostra tabella di esempio risulta il seguente:
COPY persons TO '/tmp/jobs.csv' DELIMITER ',' CSV HEADER;
Questo comando, funzionante sulle macchine Linux, salverà un file denominato jobs.csv nella /tmp directory.
Analogo comando su macchina Windows risulterebbe essere il seguente:
COPY persons TO 'C:\temp\jobs.csv' DELIMITER ',' CSV HEADER;
Esportare specifiche colonne di una tabella a CSV usando COPY
Nel caso in cui si voglia esportare solo specifiche colonne della nostra tabella PostgreSQL, il comando sarà simile al seguente:
COPY persons(number, client_name) TO '/tmp/jobs.csv' DELIMITER ',' CSV HEADER;
L’analoga versione per Windows sarà quindi:
COPY persons(number, client_name) TO 'C:\temp\jobs.csv' DELIMITER ',' CSV HEADER;