제목이있는 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 ',');"
