在postgres 9.5中导入csv文件需要将/ n替换为null

时间:2017-06-06 05:56:14

标签: postgresql

我想将csv文件导入到表中。 CSV文件包含新行\N

复制时保存到我的数据库。因此,在通过

导入时需要将/n替换为NULL
copy tbl_created_doc_no FROM '/Desktop/admin/document_no.csv' (FORMAT csv, HEADER, DELIMITER ';');

任何人都可以提出替换

的选项

1 个答案:

答案 0 :(得分:0)

https://www.postgresql.org/docs/current/static/sql-copy.html

  

NULL

     

指定表示空值的字符串。默认值为\ N.   (反斜杠-N)文本格式,以及CSV中未加引号的空字符串   格式。对于案例,您甚至可能更喜欢文本格式的空字符串   您不希望将空值与空字符串区分开来。这个   使用二进制格式时不允许使用选项。

因此,如果您想要csv格式,请使用NULL '\N'自己指定NULL,例如:

t=# select * from so78;
                h                 | i
----------------------------------+---
 2e346ec46b4ae31f54bf3ad3d90d3183 | 1
t=#  copy so78 from stdin (delimiter ';', null '\N', format csv);
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> a;\N
>> \.
COPY 1
t=# select * from so78;
                h                 | i
----------------------------------+---
 2e346ec46b4ae31f54bf3ad3d90d3183 | 1
 a                                |