Przykład z nazwą pliku w stylu uniksowym:
COPY (SELECT * FROM tbl) TO '/var/lib/postgres/myfile1.csv' format csv;
Przeczytaj instrukcję o COPY
(link do wersji 8.2).
Musisz użyć ścieżki bezwzględnej dla pliku docelowego. Pamiętaj, aby podwójne cudzysłowy nazwy plików ze spacjami. Przykład dla MS Windows:
COPY (SELECT * FROM tbl)
TO E'"C:\\Documents and Settings\\Tech\Desktop\\myfile1.csv"' format csv;
W PostgreSQL 8.2 , z standard_conforming_strings = off
domyślnie musisz podwoić ukośniki odwrotne, ponieważ \
jest znakiem specjalnym i jest interpretowany przez PostgreSQL. Działa w dowolnej wersji. Wszystko jest w dobrej instrukcji:
nazwa pliku
Bezwzględna nazwa ścieżki pliku wejściowego lub wyjściowego. Użytkownicy systemu Windows mogą potrzebować użyć E''
ciąg znaków i podwójne ukośniki odwrotne używane jako separatory ścieżek.
Lub nowoczesna składnia z standard_conforming_strings = on
(domyślnie od Postgresa 9.1):
COPY tbl -- short for (SELECT * FROM tbl)
TO '"C:\Documents and Settings\Tech\Desktop\myfile1.csv"' (format csv);
Możesz też użyć ukośników w nazwach plików w systemie Windows.
Alternatywą jest użycie metapolecenia \copy
domyślnego klienta terminala psql
.
Możesz także użyć graficznego interfejsu użytkownika, takiego jak pgadmin, i kopiować / wklejać z siatki wyników do programu Excel w przypadku małych zapytań.
Ściśle powiązana odpowiedź:
- Kopiuj wyniki z widoku PostgreSQL z jednej bazy danych do tabeli w innej
Podobne rozwiązanie dla MySQL:
- Eksportowanie danych MYSQL do Excela/CSV przez php