Csv

在填充串列列的同時複製 csv 數據

  • April 18, 2016

我已經創建了我的第一個 postgres 表,我正在嘗試解決如何將 .csv 文件複製到表中,同時在第 1 列(ID)中生成一個序列號,該序列號從 1 開始並向上計數(即1, 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     

您可以指定要填寫命令的各個列COPY

COPY table_name [ ( column [, ...] ) ]
   FROM { 'filename' | STDIN }
   [ [ WITH ] ( option [, ...] ) ]

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

因此,在 中明確指定您的 CSV 列COPY,省略 bigserials 列。

引用自:https://unix.stackexchange.com/questions/277080