“最后预期列之后的额外数据”尝试将csv文件导入postgresql时 [英] "extra data after last expected column" while trying to import a csv file into postgresql

查看:164
本文介绍了“最后预期列之后的额外数据”尝试将csv文件导入postgresql时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试将CS​​V文件的内容复制到我的postgresql数据库中,并且出现此错误最后一个预期列之后的额外数据。

I try to copy the content of a CSV file into my postgresql db and I get this error "extra data after last expected column".

我的内容CSV是

    agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone
100,RATP (100),http://www.ratp.fr/,CET,,

,而我的postgresql命令是

and my postgresql command is

COPY agency (agency_name, agency_url, agency_timezone) FROM 'myFile.txt' CSV HEADER DELIMITER ',';

这是我的桌子

CREATE TABLE agency (
    agency_id character varying,
    agency_name character varying NOT NULL,
    agency_url character varying NOT NULL,
    agency_timezone character varying NOT NULL,
    agency_lang character varying,
    agency_phone character varying,
    agency_fare_url character varying
);

     Column      |       Type        | Modifiers 
-----------------+-------------------+-----------
 agency_id       | character varying | 
 agency_name     | character varying | not null
 agency_url      | character varying | not null
 agency_timezone | character varying | not null
 agency_lang     | character varying | 
 agency_phone    | character varying | 
 agency_fare_url | character varying | 


推荐答案

现在您有7个字段。

您需要将CSV中的这6个字段映射到表中的6个字段中。

You need to map those 6 fields from the CSV into 6 fields into the table.

您不能仅映射csv中的3个字段当您拥有6时,就像在以下情况中所做的一样:

You cannot map only 3 fields from csv when you have it 6 like you do in:

\COPY agency (agency_name, agency_url, agency_timezone) FROM 'myFile.txt' CSV HEADER DELIMITER ',';

csv文件中的所有字段都必须映射到命令副本中。

All fields from the csv file need to to be mapped in the copy from command.

并且由于您定义了csv 分隔符是默认的,因此您无需放置它。

And since you defined csv , delimiter is default, you don't need to put it.

这篇关于“最后预期列之后的额外数据”尝试将csv文件导入postgresql时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆