1

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

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

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

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

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

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

问题还在于分隔符 TAB \t

4

2 回答 2

2
copy "NAV_DATA" (name,call_type,date_created) from 'c:/test.txt' with delimiter '\t' csv
于 2011-11-14T16:29:33.973 回答
1

如果您想知道NULLCSV 文件中的值是如何表示的,请查看@Milen 在他的评论中链接到的手册页。或者将一些测试数据(包括NULL值)写入您的表中并使用COPY TO. 您得到的正是预期的格式COPY FROM

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

例如,串行列(id可能)将从nextval()每一行的关联序列中获取。如果id还没有默认值,请为其创建一个序列并将nextval('my_sequence_name')列设为默认值。

于 2011-11-14T17:55:57.097 回答