web-dev-qa-db-ja.com

csvファイルをpostgresqlにインポートしようとしているときに、「最後の予想列の後の追加データ」

CSVファイルの内容をpostgresql dbにコピーしようとすると、このエラー「最後の予想列の後の追加データ」が表示されます。

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 | 
35

これで7つのフィールドができました。

CSVのこれらの6つのフィールドをテーブルの6つのフィールドにマッピングする必要があります。

あなたがするように6がある場合、csvから3つのフィールドのみをマッピングすることはできません:

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

Csvファイルのすべてのフィールドは、copy fromコマンドでマップする必要があります。

そして、csv ,区切り文字はデフォルトです。配置する必要はありません。

33
Mladen Uzelac

これが答えとしてカウントされるかどうかはわかりませんが、私はこれを多数のCSVファイルでヒットし、Excelで開いて変更せずに再保存するだけでエラーがなくなることがわかりました。 IOTWソースファイルには、Excelが自動的にクリーンアップできる誤ったフォーマットが含まれている可能性があります。

0
shacker