Exempel med filnamn i Unix-stil:
COPY (SELECT * FROM tbl) TO '/var/lib/postgres/myfile1.csv' format csv;
Läs manualen om COPY
(länk till version 8.2).
Du måste använda en absolut sökväg för målfilen. Se till att dubbla citattecken filnamn med mellanslag. Exempel för MS Windows:
COPY (SELECT * FROM tbl)
TO E'"C:\\Documents and Settings\\Tech\Desktop\\myfile1.csv"' format csv;
I PostgreSQL 8.2 , med standard_conforming_strings = off
som standard måste du dubbla omvänt snedstreck, eftersom \
är ett specialtecken och tolkas av PostgreSQL. Fungerar i alla versioner. Allt finns i den fina manualen:
filnamn
Det absoluta sökvägsnamnet för indata- eller utdatafilen. Windows-användare kan behöva använda en
E''
sträng och dubbla snedstreck som används som vägavgränsare.
Eller den moderna syntaxen med standard_conforming_strings = on
(standard sedan Postgres 9.1):
COPY tbl -- short for (SELECT * FROM tbl)
TO '"C:\Documents and Settings\Tech\Desktop\myfile1.csv"' (format csv);
Eller så kan du också använda snedstreck för filnamn under Windows.
Ett alternativ är att använda metakommandot \copy
för standardterminalklienten psql
.
Du kan också använda ett GUI som pgadmin och kopiera/klistra in från resultatrutnätet till Excel för små frågor.
Närbesläktat svar:
- Kopiera resultat från en PostgreSQL-vy i en DB till en tabell i en annan
Liknande lösning för MySQL:
- Exportera MYSQL-data till Excel/CSV via php