"données supplémentaires après la dernière colonne attendue" en essayant d'importer un fichier csv dans postgresql

j'essaie de copier le contenu D'un fichier CSV dans mon db postgresql et j'obtiens cette erreur "données supplémentaires après la dernière colonne attendue".

le contenu de mon CSV est

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

et ma commande postgresql est

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

Voici ma table

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 | 
24
demandé sur Frederic Le Feurmou 2014-11-02 19:41:50

2 réponses

Maintenant, vous avez 7 champs.

vous devez faire la correspondance entre les 6 champs de la CSV et les 6 champs de la table.

vous ne pouvez pas mapper seulement 3 champs de csv quand vous l'avez 6 comme vous le faites dans:

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

tous les champs du fichier csv doivent être mappés dans la commande copy from.

, délimiteur par défaut, vous n'avez pas besoin de le mettre.

21
répondu Mladen Uzelac 2014-11-02 20:07:43

j'ai essayé votre exemple et cela fonctionne bien mais ....

votre commande de la ligne de commande psql est manquante \

database=#  \COPY agency FROM 'myFile.txt' CSV HEADER DELIMITER ',';

Et la prochaine fois, veuillez inclure DDL

j'ai créé DDL à partir du fichier csv en-têtes

0
répondu Mladen Uzelac 2014-11-02 20:01:09