我尝试将CSV文件的内容复制到我的postgresql数据库中,但得到了这个错误"extra data after last expected“。
我的CSV的内容是
agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone
100,RATP (100),http://www.ratp.fr/,CET,,
我的postgresql命令是
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 |
发布于 2014-11-03 04:03:09
现在您有7个字段。
您需要将CSV中的6个字段映射到表中的6个字段中。
当您有6个字段时,不能仅从csv映射3个字段,就像在中所做的那样:
\COPY agency (agency_name, agency_url, agency_timezone) FROM 'myFile.txt' CSV HEADER DELIMITER ',';
需要在copy from命令中映射csv文件中的所有字段。
而且由于您定义了csv ,
分隔符是默认的,所以您不需要将其放入。
发布于 2019-07-09 02:03:46
我不确定这算不算一个答案,但我只是用一堆CSV文件来解决这个问题,并发现只需在Excel中打开它们,然后重新保存它们而不做任何更改,就可以消除错误。IOTW源文件中可能存在Excel能够自动清除的某些不正确的格式。
发布于 2014-11-03 02:19:54
我试过你的例子,它工作得很好,但是...
从psql命令行执行的命令缺少\
database=# \COPY agency FROM 'myFile.txt' CSV HEADER DELIMITER ',';
下一次请包括DDL
我从csv头文件创建了DDL
https://stackoverflow.com/questions/26701735
复制相似问题