psycopg2 ожидает данные для серийного столбца в postgresql - PullRequest
0 голосов
/ 19 февраля 2019

Я использую copy_from для копирования данных в таблицу в postgresql.Однако он пытается вставить данные в последовательный столбец (или жалуется, что в конце столбца нет данных)

У меня есть таблица, созданная в postgresql следующим образом:

CREATE TABLE userdata (
    userid int4 null,
    activity varchar null,
    "time" timestamp null,
    id serial not null,
    primary key (id)
    );

У меня есть фрейм данных со столбцами «идентификатор пользователя», «активность», «время». Когда я пытаюсь скопировать это в таблицу, я получаю сообщение об ошибке:

«psycopg2.DataError: отсутствуют данные для столбца"id"

Я ожидаю, что этот столбец будет заполнен значением по умолчанию, которое, как я вижу в свойствах столбца, правильно установлено nextval('userdata_id_seq'::regclass)

КодЯ использую для вставки данных:

output = io.StringIO()
df.to_csv(output, sep='|', index=False, header=False)

connection = engine.raw_connection()
cursor = connection.cursor()
output.seek(0)
cursor.copy_from(output, table, sep='|', null='')
connection.commit()
cursor.close()
connection.close()

Мне не хватает некоторых настроек в моем коде или что-то еще?

...