Переменная VARCHAR не распознается при импорте данных в таблицу pgAdmin

#sql #postgresql #pgadmin #pgadmin-4

#sql #postgresql #pgadmin #pgadmin-4

Вопрос:

Я создал таблицу, используя следующую инструкцию в pgAdmin4

 create table web_data(
    timestamp TIMESTAMP WITHOUT TIME ZONE,
    device_type VARCHAR(50),
    session_id VARCHAR(100),
    customer_id VARCHAR(150),
    url VARCHAR(100),
    purchase_id VARCHAR(100)
    );
  

В результате получается следующая таблица

введите описание изображения здесь

При импорте файла CSV возвращается ошибка 1, указывающая, что в столбце customer_id временная метка недопустима, однако в этом столбце временная метка не указана. Полная ошибка:

 ERROR:  time zone "f3285a42f7199" not recognized
CONTEXT:  COPY web_data, line 2, column datum: "122048f3285a42f7199"
  

Кажется, что 122048 идентифицируется как отметка времени, а f3285a42f7199 идентифицируется как часовой пояс, хотя на самом деле это просто длинная строка, идентифицирующая клиента.

Как я могу настроить таблицу так, чтобы я мог вставить свою полную таблицу.

Комментарии:

1. Вам нужно исправить, какие столбцы в данных сопоставляются с какими столбцами в таблице. Что-то не так.

2. Согласно @GordonLinoff вам нужно будет привести порядок столбцов в файле CSV в соответствие с порядком столбцов в таблице. Либо измените порядок в файле CSV, либо укажите порядок столбцов в самой COPY команде для каждой КОПИИ . Пока вы находитесь, я бы изменил имя timestamp поля на что-то, что не соответствует имени типа. Это избавит вас от путаницы позже.