Пример с име на файла в стил Unix:
COPY (SELECT * FROM tbl) TO '/var/lib/postgres/myfile1.csv' format csv;
Прочетете ръководството за COPY
(връзка към версия 8.2).
Трябва да използвате абсолютен път за целевия файл. Не забравяйте да цитирате имената на файлове с двойни кавички с интервали. Пример за MS Windows:
COPY (SELECT * FROM tbl)
TO E'"C:\\Documents and Settings\\Tech\Desktop\\myfile1.csv"' format csv;
В PostgreSQL 8.2 , с standard_conforming_strings = off
по подразбиране трябва да удвоите обратна наклонена черта, защото \
е специален символ и се интерпретира от PostgreSQL. Работи във всяка версия. Всичко е във финото ръководство:
име на файл
Абсолютното име на пътя на входния или изходния файл. Потребителите на Windows може да трябва да използват
E''
низ и двойни обратни наклонени черти, използвани като разделители на пътя.
Или съвременният синтаксис с standard_conforming_strings = on
(по подразбиране от Postgres 9.1):
COPY tbl -- short for (SELECT * FROM tbl)
TO '"C:\Documents and Settings\Tech\Desktop\myfile1.csv"' (format csv);
Или можете също да използвате наклонени черти за имена на файлове под Windows.
Алтернатива е да използвате метакомандата \copy
на терминалния клиент по подразбиране psql
.
Можете също да използвате графичен интерфейс като pgadmin и да копирате/поставяте от мрежата с резултати в Excel за малки заявки.
Тясно свързан отговор:
- Копирайте резултатите от изглед на PostgreSQL в една DB в таблица в друга
Подобно решение за MySQL:
- Експортиране на MYSQL данни в Excel/CSV чрез php