sql - 从 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"
谢谢你。
解决方案
COPY
接受一个参数,NULL
.
请试试这个:
COPY name_mock FROM '/home/pathtofile/name.basics.tsv' DELIMITER E'\t' NULL '\N' CSV HEADER;
推荐阅读
- c# - 为什么这个添加 SIMD 数组的示例不能证明比简单实现有任何性能提升?
- python - matplotlib:在子图中设置 sharex 后刻度标签消失
- asp.net-mvc - ASP.NET MVC 以小写形式呈现 html 标签和属性
- c# - WPF 在 ComboBox 中绘制图元
- nginx - 条件,如果重写返回404状态,返回另一个页面
- jboss - 如果侦听器关闭,持久 JMS 消息如何存活
- vim - 使用 vim-surround 在不同的行上包装变量值
- asp.net-mvc - OnActionExecuted 被意外调用
- angular - angular fontawesome 库复合名称并使用常规图标
- css - 移动响应有溢出-y