PostgreSQL COPY命令问题

时间:2011-11-14 15:23:59

标签: python postgresql csv postgresql-copy

在我的Postgresql数据库中,我创建了一个名为NAV_DATA的表,其中包含五列:

 id (PKEY)
,name (VARCHAR)
,call_type (VARCHAR)
,date_created (date)

对于这些列,我有csv文件,分隔符TAB \t和Quotechar "
它在中间列中也有一些空字段。

如何允许在复制命令中接受空值?

我想插入列(name, call_type, date_created)。我的csv中没有字段id

如何将特定列复制到数据库中?

问题还在于分隔符TAB \t

2 个答案:

答案 0 :(得分:2)

copy "NAV_DATA" (name,call_type,date_created) from 'c:/test.txt' with delimiter '\t' csv

答案 1 :(得分:1)

如果您想知道如何在CSV文件中表示NULL值,请查看@Milen在其评论中链接的手册页面。或者将一些测试数据(包括NULL值)写入您的表格并将其导出为COPY TO。您将获得COPY FROM预期的格式。

标准格式NULL\N表示,标准CSV格式由分隔符之间的 nothing 表示。 COPY命令中未提及的列将使用各自的默认值填充。

例如,一个串行列(可能是id)将从每行的关联序列中获得nextval()。如果id尚未设置默认值,create a sequence为默认值,并使nextval('my_sequence_name')列为默认值。