复制 csv 数据,同时填充串行列

nei*_*ilH 3 database csv postgresql

我已经创建了我的第一个 postgres 表,我正在尝试研究如何将 .csv 文件复制到表中,同时在第 1 列(ID)中生成一个序列号,该序列号从数字 1 开始向上计数(即1, 2 ,3 等)每行。我一直在使用命令:

COPY sales_table FROM '/home/perl_experiments/xmlcsv.txt' (DELIMITER('|'));
Run Code Online (Sandbox Code Playgroud)

这试图复制 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     
Run Code Online (Sandbox Code Playgroud)

Gui*_*ido 5

您可以指定各个列来填写COPY命令:

COPY table_name [ ( column [, ...] ) ]
    FROM { 'filename' | STDIN }
    [ [ WITH ] ( option [, ...] ) ]
Run Code Online (Sandbox Code Playgroud)

( http://www.postgresql.org/docs/9.1/static/sql-copy.html )

因此,请在 中明确指定您的 CSV 列COPY,而忽略 bigserials 列。