PSQL копировать из чтения данных из скрипта - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь экспортировать / импортировать набор таблиц из базы данных PostgreSQL.

Я использую PSQL copy from с stdin из скрипта. Я прочитал, что данные (ранее полученные с использованием copy to с stdout) можно прочитать и разграничить с помощью команды escape \..

Из документации я не понял, что произойдет, если в ранее экспортированных данных появится \..

В частности, этот раздел документации (выделено мной) не совсем ясно об этом.

Для \copy ... from stdin строки данных читаются из того же источника, что и выдал команду, продолжающуюся до тех пор, пока \. не будет прочитан или поток не достигнет EOF. Эта опция полезна для заполнения таблиц внутри строки в SQL файл сценария. Для \copy ... to stdout вывод отправляется в то же место как вывод команды psql, а состояние команды подсчета COPY не напечатано (так как это может быть перепутано со строкой данных). Читать / писать стандартный ввод или вывод psql независимо от текущей команды источник или опция \ o, пишите из pstdin или в pstdout.

Может / должно ли \. появиться в данных как-то сбежать?

В настоящее время я использую кодированный utf8 формат text для экспорта / импорта.

1 Ответ

0 голосов
/ 18 мая 2019

Мне кажется, я нашел соответствующую информацию в документации команды SQL COPY (раздел «Формат текста», снова выделение мое):

Конец данных может быть представляет собой одну строку, содержащую только период обратной косой черты (\.) .Маркер конца данных не требуется при чтении из файла, так как конец файла отлично работает;он необходим только при копировании данных в клиентские приложения или из них с использованием клиентского протокола до версии 3.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...