【问题标题】:PostgreSQL COPY csv including QuotesPostgreSQL COPY csv 包括引号
【发布时间】:2015-02-20 21:10:12
【问题描述】:

这是一个很简单的问题,我使用psql终端命令COPY如下图

COPY tbname FROM '/tmp/file.csv'
delimiter '|' csv;

但是这个file.csv包含诸如

之类的数据
random|stuff|32"

还有

random|other "stuff"|15

按照 Postgres 网站的建议,我尝试使用双引号来转义引号

random|stuff|32""
random|other ""stuff""|15

这似乎完全删除了我不想要的引号。 有没有办法让导入将这些引号视为常规字符,以便它们像在 csv 文件中一样出现在数据库中?

【问题讨论】:

    标签: postgresql csv import copy


    【解决方案1】:

    根据documentation,默认引号符号是",因此您需要提供一个不同符号的QUOTE参数。引号符号必须是单个单字节字符。

    COPY tbname FROM '/tmp/file.csv'
    delimiter '|' QUOTE '}' csv; -- use a symbol you know does not appear in your file.
    

    【讨论】:

    • 效果很好,谢谢,我没想到会有这么好的解决方案
    • 如果您无法确定任何符号不存在的情况,我们会很高兴看到解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多