직렬 열을 채우는 동안 CSV 데이터 복사

직렬 열을 채우는 동안 CSV 데이터 복사

첫 번째 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 열은 무시하시기 바랍니다.

관련 정보