在我的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
?
答案 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')
列为默认值。