PostgreSQL 테이블 검색 결과 csv출력 데이터 내보내기(Export) , 가져오기(Import)

공유하기

  • Add this entry to Hatena Bookmark
  • 0

PostgreSQL에서는 COPY문을 사용하여 테이블의 데이터를 csv형식으로 출력하거나 csv형식의 데이터를 테이블로 가져올 수 있습니다. 이 글에서는 COPY문 사용 방법과 주의 사항에 대해 소개합니다.

이 글에서 사용한 테이블과 데이터는 다음 글에서 만든것 입니다.

PostgreSQL에서 성능 테스트를 위해 테이블과 테이블의 외래키(Foreign Key) 참조 정합성을 유지 하면서 각종 ...

데이터 내보내기(Data Export)

다음 PostgreSQL 명령은 "EMP" 테이블에서 모든 레코드를 선택하여 "C:\temp\test.csv" 파일로 출력합니다. WITH CSV DELIMITER ',' 옵션은 복사된 데이터가 CSV 형식으로 저장되고, 쉼표(,)로 구분되도록 지정합니다.

select current_date, current_time;
COPY (SELECT * FROM EMP) TO 'C:\temp\test.csv' WITH CSV DELIMITER ',';
select current_date, current_time;

출력 파일 내용은 다음과 같습니다.

1,E000000001,J000000001,8419,2023-02-06 11:01:23.448573,45676.52,4508.21,2
2,E000000002,J000000002,6670,2023-01-07 21:01:23.449045,68734.91,25365.22,3
3,E000000003,J000000003,6197,2023-01-22 14:01:23.449066,83417.79,45075.75,4
4,E000000004,J000000004,479,2023-01-22 04:01:23.449074,40310.20,22031.10,5
5,E000000005,J000000005,1170,2023-01-16 09:01:23.449081,53866.41,16813.83,6
6,E000000006,J000000006,8229,2023-01-18 06:01:23.449087,19821.89,41014.00,7

데이터 가져오기(Data Import)

다음 PostgreSQL 명령은 "C:\temp\test.csv" 파일에서 데이터를 가져와 "EMP" 테이블에 복사합니다. WITH CSV DELIMITER ',' 옵션은 파일에서 읽어온 데이터가 CSV 형식으로 구성되어 있고, 쉼표(,)로 구분되도록 지정합니다.

truncate EMP;
select current_date, current_time;
COPY EMP FROM 'C:\temp\test.csv' WITH CSV DELIMITER ',';
select current_date, current_time;