postgres:将csv文件导入表

时间:2019-07-26 05:59:19

标签: postgresql

我想将csv文件导入数据库表。但是它不起作用。

我在linux env中运行bash shell。

CREATE TABLE test.targetDB (
    no int4 NOT NULL GENERATED ALWAYS AS IDENTITY,
    year varchar(15) NOT NULL,
    name bpchar(12) NOT NULL,
    city varchar(15) NOT NULL,
    ts_load timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (seq_no)
)

test.csv文件

"2019","112         ","1123",2019-07-26-05.33.43.000000

Linux Cmd

psql -d $database -c   " COPY test.targetDB from 'test.csv' delimiter ',' csv "

错误

ERROR:  invalid input syntax for integer: "2019"
CONTEXT:  COPY targetDB, line 1, column no: "2019"

我该如何解决这个问题

2 个答案:

答案 0 :(得分:1)

您需要通过指定应填充的列来告诉副本no列不是CSV文件的一部分:

COPY test.targetDB(year, name, city, ts_load) from 'test.csv' delimiter ',' csv 

答案 1 :(得分:-2)

我建议使用datagrip-一种postgresql客户端工具。如果您不想购买,可以使用评估版。从UI导入文件非常简单,而无需使用命令行。