Příklad s názvem souboru ve stylu Unix:
COPY (SELECT * FROM tbl) TO '/var/lib/postgres/myfile1.csv' format csv;
Přečtěte si příručku o COPY
(odkaz na verzi 8.2).
Musíte použít absolutní cestu pro cílový soubor. Názvy souborů uvádějte do uvozovek s mezerami. Příklad pro MS Windows:
COPY (SELECT * FROM tbl)
TO E'"C:\\Documents and Settings\\Tech\Desktop\\myfile1.csv"' format csv;
V PostgreSQL 8.2 , s standard_conforming_strings = off
ve výchozím nastavení musíte zdvojit zpětná lomítka, protože \
je speciální znak a interpretovaný PostgreSQL. Funguje v jakékoli verzi. Vše je v podrobném návodu:
název souboru
Absolutní cesta ke vstupnímu nebo výstupnímu souboru. Uživatelé Windows možná budou muset použít
E''
řetězec a dvojitá zpětná lomítka používané jako oddělovače cest.
Nebo moderní syntaxe s standard_conforming_strings = on
(výchozí od Postgres 9.1):
COPY tbl -- short for (SELECT * FROM tbl)
TO '"C:\Documents and Settings\Tech\Desktop\myfile1.csv"' (format csv);
Nebo můžete také použít lomítka pro názvy souborů pod Windows.
Alternativou je použít meta-příkaz \copy
výchozího terminálového klienta psql
.
Můžete také použít GUI jako pgadmin a zkopírovat/vložit z výsledkové mřížky do Excelu pro malé dotazy.
Úzce související odpověď:
- Zkopírujte výsledky ze zobrazení PostgreSQL v jedné DB do tabulky v jiné
Podobné řešení pro MySQL:
- Export dat MYSQL do Excelu/CSV přes php