PostgreSQL \copy
명령은 psql
대화형 클라이언트 도구에서 사용할 수 있는 메타 명령입니다. \copy
를 사용하여 RDS for PostgreSQL DB 인스턴스의 테이블로 데이터를 가져올 수 있습니다. \copy
명령을 사용하려면 먼저 \copy
가 대상 DB 인스턴스에 복사할 데이터의 대상을 갖도록 테이블 구조를 생성해야 합니다.
\copy
를 사용하여 클라이언트 워크스테이션으로 내보내고 저장된 파일과 같은 쉼표로 구분된 값(CSV) 파일에서 데이터를 로드할 수 있습니다.
CSV 데이터를 대상 RDS for PostgreSQL DB 인스턴스로 가져오려면 먼저 psql
을 사용하여 대상 DB 인스턴스에 연결합니다.
psql --host=
db-instance.111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=target-db
그리고 다음 파라미터와 함께 \copy
명령을 실행하여 데이터 대상과 해당 형식을 식별합니다.
-
target_table
- CSV 파일에서 복사되는 데이터를 수신해야 하는 테이블의 이름입니다. -
column_list
- 테이블의 열 사양입니다. -
'filename'
- 로컬 워크스테이션에 있는 CSV 파일의 전체 경로입니다.
\copy
target_table
from '/path/to/local/filename.csv
' WITH DELIMITER ',' CSV;
CSV 파일에 열 머리글 정보가 있는 경우 이 버전의 명령 및 파라미터를 사용할 수 있습니다.
\copy
target_table
(column-1
,column-2
,column-3
,...
) from '/path/to/local/filename.csv
' WITH DELIMITER ',' CSV HEADER;
\copy
명령이 실패하면 PostgreSQL이 오류 메시지를 출력합니다.
다음 예와 같이 \copy
메타 명령과 함께 psql
명령을 사용하여 데이터베이스 미리 보기 환경에서 새 DB 인스턴스를 생성합니다. 이 예제에서는 source-table을 원본 테이블 이름으로, source-table.csv를 .csv 파일로, target-db를 대상 데이터베이스로 사용합니다.
대상 LinuxmacOS, 또는Unix:
$psql target-db \ -U <admin user> \ -p <port> \ -h <DB instance name> \ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"
Windows의 경우:
$psql target-db ^ -U <admin user> ^ -p <port> ^ -h <DB instance name> ^ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"
\copy
명령에 대한 자세한 내용은 PostgreSQL 설명서의 메타 명령(Meta-Commands) 섹션에서 psql