PostgreSQL, импорт CSV-файла - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь скопировать файл CSV в пустую таблицу, после попытки сопоставить столбцы в CSV, которые завершились с той же ошибкой.

COPY books 
FROM '/path/to/file/books.csv' CSV HEADER; 

ошибка:

ERROR:  extra data after last expected column
CONTEXT:  COPY books, line 2: "1,Harry Potter and the Half-Blood Prince (Harry Potter  #6),J.K. Rowling/Mary GrandPré,4.57,0439785..."
SQL state: 22P04

Кроме того, я хотел бы, чтобы тип публикации_даты был типа даты, поэтому его можно запросить. Как это можно применить при копировании?

кусок файла CSV:

bookID| title        | authors  |   average_rating  | isbn|isbn13 |num_pages  | ratings_count| text_reviews_count| publication_date|
----------------------------------------------------------------------------------------------------------------------------------
1     | harry potter |          |                   |             |
      |(harry Potter |          |                   |             |
      |     #6)      | author   | 4                 |"num" | "num"| 600       | 3243         | 534                | 01/01/2000    |
SELECT * FROM books

output:

bookID| title    | authors  |   average_rating |    isbn   |isbn13| language_code    
---------------------------------------------------------------------------------
text  | character| text     | integer        | text   | text  |  character |      
      |  varying |          |                |        |       |  varying               

| num_pages  | ratings_count| text_reviews_count| publication_date| publisher
-------------------------------------------------------------------------------
| integer    | bigint       | bigint            | date            |  character
                                                                     varying


1 Ответ

0 голосов
/ 25 марта 2020

Прежде всего, несоответствие номеров столбцов из CSV файла и TABLE, но вы можете указать с помощью команды COPY столбцы для нужной вам таблицы:

  COPY books (bookID,title,authors,average_rating,isbn,isbn13,num_pages,ratings_count , text_reviews_count , publication_date) FROM '/path/to/file/books.csv' CSV header delimiter ','; 

Вы можете укажите ваш разделитель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...