Почему мой экспорт postgresql csv имеет больше строк, чем таблица? - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь скопировать таблицу в базу данных postgresql (версия 10.12) через psql. Одна из строк содержит строки, представляющие xml данных. Когда я запрашиваю в базе данных количество строк с помощью этого запроса, я получаю около 50 000:

select count(column) from table;

Но когда я пытаюсь экспортировать данные в файл csv, на выходе получается более 1000000 строк! Я не понимаю, как экспорт csv может иметь другое количество строк, чем таблица!

Это команда копирования:

\copy (select column from table) to 'directory/output.csv' with csv;

Кажется, не имеет значения, если я измените разделитель или укажите кавычки. Я пробовал использовать | в качестве разделителя и ` в качестве цитаты, и количество строк в csv было одинаковым. Почему количество строк в экспорте csv отличается?

1 Ответ

1 голос
/ 19 июня 2020

Количество строк не отличается: выходные данные CSV просто содержат переводы строк (LF, код ASCII 10), встроенные в поля, что ожидается в XML.

Если вы хотите, чтобы по одной строке на строку с помощью COPY , не используйте CSV, используйте текстовый формат, то есть просто опустите with csv. Затем символы новой строки кодируются с помощью \n вместо того, чтобы выводиться дословно.

...