【问题标题】:How to import a CSV file to a PostgreSQL table using pgAdmin如何使用 pgAdmin 将 CSV 文件导入 PostgreSQL 表
【发布时间】:2020-07-28 08:50:08
【问题描述】:

我正在尝试导入以下 csv 文件(名为 dummy.csv):

“F1”、“F2”、“F3”

1,2,"a"

3,4, "b"

3.4,2.4,"c"

PostgreSQL 使用 pgAdmin GUI 和以下命令:

"C:\\Program Files\\PostgreSQL\\12\\bin\\psql.exe" 
--command " "\\copy public.\"Result\" 
FROM 'dummy.csv' 
DELIMITER ',' 
CSV HEADER ENCODING 'UTF8' 
QUOTE '\"' 
ESCAPE '''';""

但不断收到以下错误

ERROR: extra data after the last expected column
CONTEXT:  COPY Result, line 2: «1,2,"a" 

我做错了什么?

【问题讨论】:

    标签: postgresql csv import pgadmin


    【解决方案1】:

    csv 不是很“干净”:

    "F1", "F2", "F3"
    
    1,2,"a"
    
    3,4, "b"
    
    3.4,2.4,"c"
    

    分隔符和引号之间有空格,这可能会给某些解析器带来问题。

    也许先尝试以下方法,看看会产生什么效果:

    "F1","F2","F3"
    1,2,"a"
    3,4,"b"
    3.4,2.4,"c"
    

    您甚至可以删除此示例中的引号。

    【讨论】:

    • 你说得对,丹尼,有几个空格。我听从了您的建议,删除了空格和引号,但仍然收到相同的消息错误,即最后一列之后有额外的数据(指向第一行的数据)。
    • @SergiJustinianoClaramunt 如果删除命令的最后 3 行(CSV..、QUOTE..、ESCAPE..)会怎样?
    • 我意识到我需要预先创建表格来指定它应该有哪些列,但这是一个只有 3 列的虚拟示例,所以我可以手动完成。我最初尝试上传的表有超过 1000 列,所以我想知道是否有任何方法可以使该过程自动化。 PD:顺便说一句,谢谢您的快速回复。
    猜你喜欢
    • 2018-09-25
    • 2019-05-15
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多