Я использую 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()
Мне не хватает некоторых настроек в моем коде или что-то еще?