PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Експортиране на данни, съдържащи емисии на редове, като CSV от PostgreSQL

За да експортирате файла в друг сървър, имате две опции:

  • Създаване на споделена папка между двата сървъра, така че базата данни също да има достъп до тази директория.

COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;

  • Задействане на експортирането от целевия сървър чрез STDOUT отCOPY . Използване на psql можете да постигнете това чрез следната команда:

psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv

РЕДАКТИРАНЕ :Справяне с проблема с полета, съдържащи канали за редове (\n )

В случай, че искате да се отървете от редовете, използвайте REPLACE функция.

Пример:

 SELECT E'foo\nbar';
 ?column? 
----------
 foo     +
 bar
(1 Zeile)

Премахване на подаването на ред:

SELECT REPLACE(E'foo\nbaar',E'\n','');
 replace 
---------
 foobaar
(1 Zeile)

Така че вашето COPY трябва да изглежда така:

COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да върна обикновена стойност от заявка на Knex / Postgresql?

  2. Временна последователност в рамките на SELECT

  3. Как да създадете ограничение за изключване с диапазон от дати с помощта на sqlalchemy

  4. Изберете отделна потребителска група по период от време

  5. Върнете типа на таблицата от функция A в PostgreSQL