[postgresql] PostgreSQL에서 제목이있는 테이블을 CSV로 내보내는 방법은 무엇입니까?

제목이있는 PostgreSQL 테이블을 명령 줄을 통해 CSV 파일로 내보내려고하지만 제목이없는 CSV 파일로 내보낼 수 있습니다.

내 코드는 다음과 같습니다.

COPY products_273 to '/tmp/products_199.csv' delimiters',';



답변

COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);

설명서에 설명 된대로 .


답변

psql 명령 행에서 :

\COPY my_table TO 'filename' CSV HEADER

끝에 세미콜론이 없습니다.


답변

테이블 이름 대신 선택된 열 데이터 만 가져 오는 쿼리를 작성할 수도 있습니다.

COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER;

관리자 권한으로

\COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER;


답변

Postgres에서 파일을 쓸 수있는 권한이 없으면 명령 줄에서 쿼리를 실행할 수 있습니다.

psql -U user -d db_name -c "Copy (Select * From foo_table LIMIT 10) To STDOUT With CSV HEADER DELIMITER ',';" > foo_data.csv


답변

이 작동합니다

psql dbname -F , --no-align -c "SELECT * FROM TABLE"


답변

내가 사용하는 버전 9.5의 경우 다음과 같습니다.

COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);


답변

이 솔루션은을 사용하여 저에게 효과적 \copy이었습니다.

psql -h <host> -U <user> -d <dbname> -c "\copy <table_name> FROM '<path to csvfile/file.csv>' with (format csv,header true, delimiter ',');"