#postgresql #pgadmin-4 #postgresql-copy
Вопрос:
Я хотел бы импортировать таблицу с серверного компьютера на клиентский компьютер с помощью команды копирования. Я знаю, что это повторяющаяся проблема для пользователей, но я не смог получить ответ на этот конкретный вопрос, и это также другой сценарий, и я считаю, что это распространенный.
Я использовал команду копирования, чтобы скопировать таблицу с сервера на клиентский компьютер, используя приведенный ниже код:
COPY (Select * from Table_Name) TO 'C:somedirectoryfile.csv' DELIMITER ',' CSV HEADER;
Однако я получил следующее
ОШИБКА: относительный путь не разрешен для КОПИРОВАНИЯ в файл
Мой вопрос: как мне использовать правильную команду КОПИРОВАНИЯ для копирования с серверного компьютера на клиентский компьютер в Postgres.
Спасибо в ожидании
Ответ №1:
- Пожалуйста, проверьте, имеет ли ваш пользователь доступ на чтение / запись к папке назначения.
- Это один поток, который я нашел, посмотрим, поможет ли это
https://dba.stackexchange.com/questions/158466/relative-path-for-psql-copy-file
https://postgrespro.com/list/thread-id/1116997
- Попробуйте подключиться к сети через доступ с использованием общедоступного IP-адреса клиента.
Ответ №2:
Как мне использовать правильную команду КОПИРОВАНИЯ для копирования с серверного компьютера на клиентский компьютер в Postgres
Вы просто не можете.
Что четко указано в руководстве
КОПИРОВАНИЕ с именем файла указывает серверу PostgreSQL на прямое чтение из файла или запись в файл. Файл должен быть доступен пользователю PostgreSQL (идентификатор пользователя, с которым работает сервер), а имя должно быть указано с точки зрения сервера
(выделение мое)
Вам нужно использовать psql
copy
команду ‘s или любой другой инструмент экспорта, который работает на стороне клиента.