Hugo Martins

Extracting Data from PostgreSQL

PostgreSQL has an excellent module built specifically for the purpose of extracting data between a file and a table.

This can be used to extract several data in three formats:

  • Text
  • CSV
  • Binary

Sometimes you’d want to extract data to a folder different than the one the database is in. You’d want to extract the data to the machine your logged on instead. This can be done using \copy instead of COPY.

An example of basic usage for extracting data would be, in CSV:

\copy (SELECT * FROM foo WHERE bar IS NOT NULL) TO '/path/to/folder' HEADER CSV

This simple snippet is incredibly useful to generate reports or extract data for analysis, simply and quickly.