첫 번째 postgres 테이블을 만들었고 숫자 1로 시작하여 개수(예: 1)로 올라가는 열 1(ID)에 일련 번호를 생성하는 동안 .csv 파일을 테이블에 복사하는 방법을 알아내려고 합니다. , 2, 3 등 행당). 나는 다음 명령을 사용했습니다.
COPY sales_table FROM '/home/perl_experiments/xmlcsv.txt' (DELIMITER('|'));
이것은 csv의 내용을 복사하려고 시도하지만 .csv의 첫 번째 데이터 열을 테이블의 첫 번째 열에 넣는 것 같습니다. 테이블의 첫 번째 열을 bigserial로 지정하고 열이 자동으로 채워지며 csv의 내용이 열 1을 우회하고 열 2부터 테이블을 채우기 시작한다고 가정했습니다. 분명히 그것은 사실이 아니며 중요한 단계를 놓쳤습니다. 내가 놓친 단계를 누군가가 밝힐 수 있습니까? 제가 만든 테이블을 요약하면 다음과 같습니다.
Column Type Not Null Default
ID bigint NOT NULL nextval('"sales_table_Entry Id_seq"'::regclass) [pk]
ProdNo bigint
Title character varying
url character varying
Price integer
답변1
COPY
명령을 채울 개별 열을 지정할 수 있습니다 .
COPY table_name [ ( column [, ...] ) ]
FROM { 'filename' | STDIN }
[ [ WITH ] ( option [, ...] ) ]
(http://www.postgresql.org/docs/9.1/static/sql-copy.html)
따라서 CSV 열을 명시적으로 지정 COPY
하고 bigserials 열은 무시하시기 바랍니다.