首页 > 解决方案 > 从 TSV 文件(postgresql)读取时的数据类型

问题描述

我从 tsv 文件读取数据到 postgresql 表。我遇到的问题是,在一列(死亡年份)中,如果演员还没有死,它要么是一年,要么是 \N。如果我尝试使用 INTEGER 作为数据类型,我会因为 \N 而出现错误。有谁知道如何解决这个问题?

这是我的桌子:

CREATE TABLE name_mock(nconst VARCHAR, primaryName VARCHAR, birthYear INTEGER, deathYear INTEGER, primaryProfession VARCHAR, knownForTitles VARCHAR);

然后我从 csv 文件中导入数据:

COPY name_mock FROM '/home/pathtofile/name.basics.tsv' DELIMITER E'\t' CSV HEADER;

我收到以下错误:

ERROR:  invalid input syntax for type integer: "\N"
CONTEXT:  COPY name_mock, line 4, column deathyear: "\N"

谢谢你。

标签: sqlpostgresql

解决方案


COPY接受一个参数,NULL.

请试试这个:

COPY name_mock FROM '/home/pathtofile/name.basics.tsv' DELIMITER E'\t' NULL '\N' CSV HEADER;

推荐阅读