Я не могу найти способ выполнить PostgreSQL INSERT.. ON UPDATE через SQLAlchemy. Есть ли способ сделать это с несколькими строками, выполняя операцию сразу со всеми данными?
Я пытаюсь добавить значения из кадра данных pandas:
for insert_values in df.to_dict(orient='records'):
insert_statement = sqlalchemy.dialects.postgresql.insert(orders_to_channels).values(insert_values)
upsert_statement = insert_statement.on_conflict_do_update(
constraint='orders_to_channels_pkey',
set_=insert_values
conn.execute(upsert)
Это работает на основе строк, и поскольку каждая строка обрабатывается отдельно, это работает ужасно медленно (20 минут для 7000 строк). Есть ли способ выполнить эту операцию как один оператор SQL?
Я ищу какую-то возможность передать такие параметры, как {'column_name':'excluded .column_name'}
, в часть обновления оператора, где «исключено» не будет анализироваться как часть строкового значения, а скорее как литерал SQL. Есть ли способ сделать это?