Есть ли способ загрузить 212 столбцов CSV-файлов в PostgreSQL - PullRequest
0 голосов
/ 25 января 2020

У меня есть CSV-файл с 122 столбцами, я пытаюсь это в Postgres. Я пытаюсь это

create tble appl_train ();
\copy appl_train FROM '/path/ to /file' DELIMITER ',' CSV HEADER;

Я получаю эту ошибку

ERROR:  extra data after last expected column
CONTEXT:  COPY application_train, line 2: "0,100001,Cash loans,F,N,Y,0,135000.0,568800.0,20560.5,450000.0,Unaccompanied,Working,Higher educatio..."

1 Ответ

1 голос
/ 25 января 2020

Сообщение об ошибке означает, что количество столбцов в вашей таблице меньше, чем количество столбцов в ваших CSV-файлах.

Если DDL вашей таблицы соответствует вашему сообщению, вы создали таблицу без столбцов. Вы должны перечислить (как минимум) все имя столбца и тип данных столбца при создании таблицы, как указано в документации :

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
  { column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]
    | table_constraint
    | LIKE parent_table [ like_option ... ] }
    [, ... ]
] )
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace ]

В вашем коде должно быть что-то вроде этого:

create table appl_train (
  first_column_name integer,
  second_column_name integer,
  third_column_name character varying (20),

// more fields here
)
...