如何将数据加载到Postgres表中,跳过标题行并添加串行主键

时间:2016-02-18 12:36:11

标签: postgresql header copy primary-key

我有一个表格

的大型制表符分隔数据文件

fieldA fieldB fieldC xxx 123 456 yyyyy 32 1654 ...

我想将其加载到具有串行主键的表中,例如

create table my_data (
    ID serial primary key,
    fieldA varchar(10),
    fieldB int,
    fieldC int
)

我想使用像

这样的命令
COPY 'data.txt' TO my_data (HEADER TRUE)

两个问题:

1)该文件包含标题行,但仅复制允许CSV文件上的HEADER选项。这是一个大数据文件,我宁愿不必创建一个额外的副本只是为了删除一个标题行。有什么工作吗?

2)需要生成ID序列主键,它不在数据文件中。我是否必须首先使用COPY加载临时表,然后执行指定字段的INSERT?同样,一个大文件,宁愿避免不必要的数据移动。

由于

1 个答案:

答案 0 :(得分:1)

诀窍是使用CSV格式,但指定TAB作为分隔符。这允许您跳过标题行。

HTTP POST