Ignore quotation marks when importing a CSV file into PostgreSQL?

前端 未结 3 1522
太阳男子
太阳男子 2021-02-19 12:41

I\'m trying to import a tab-delimited file into my PostgreSQL database. One of the fields in my file is a \"title\" field, which occasionally contains actual quotation marks. Fo

相关标签:
3条回答
  • 2021-02-19 12:52

    I struggled with the same error and a few more. Finally gathering knowledge from few SO questions I came up with the following setup for making COPY TO/FROM successful even for quite sophisticated JSON columns:

    COPY "your_schema_name.yor_table_name" (your, column_names, here) 
    FROM STDIN WITH CSV DELIMITER E'\t' QUOTE '\b' ESCAPE '\';
    --here rows data
    \.
    

    the most important parts:

    • QUOTE '\b' - quote with backspace (thanks a lot @grautur!)
    • DELIMITER E'\t' - delimiter with tabs
    • ESCAPE '\' - and escape with a backslash
    0 讨论(0)
  • 2021-02-19 13:06

    Assuming the file never actually tries to quote its fields:

    The option you want is "with quote", see http://www.postgresql.org/docs/8.2/static/sql-copy.html

    Unfortunately, I'm not sure how to turn off quote processing altogether, one kludge would be to specify a character that does not appear in your file at all.

    0 讨论(0)
  • 2021-02-19 13:13

    Tab separated is the default format for copy statements. Treating them as CSV is just silly. (do you take this path just to skip the header ?)

    copy articles from 'articles.tsv';
    

    does exactly what you want.

    0 讨论(0)
提交回复
热议问题