我无法找到通过SQLAlchemy执行PostgreSQL INSERT .. ON UPDATE的方法。是否有一种方法可以对多行进行操作,同时对整个数据执行操作?
我试图使用从Pandas数据帧中获取的值进行upsert:
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)
这是按行处理的,每行都单独处理 - 运行非常缓慢(7000行需要20分钟)。 有没有一种方法可以通过单个SQL语句执行此操作?
我正在寻找某种机会将参数传递给更新语句的部分,例如{'column_name':'excluded .column_name'}
,其中“排除”不会被解析为字符串值的一部分,而是作为SQL文字处理。有方法可以做到这一点吗?