【发布时间】:2017-07-02 05:25:12
【问题描述】:
我找不到通过 SQLAlchemy 执行 PostgreSQL INSERT .. ON UPDATE 的方法。 有没有办法处理多行,一次对整个数据执行操作?
我尝试使用 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)
这是在一行的基础上工作的,因为每一行都是单独处理的——它工作得非常慢(7000 行需要 20 分钟)。 有没有办法将此操作作为单个 SQL 语句执行?
我正在寻找某种机会将{'column_name':'excluded .column_name'} 之类的参数传递给语句的更新部分,其中“排除”不会被解析为字符串值的一部分,而是作为 SQL 文字.有没有办法做到这一点?
【问题讨论】:
标签: python sqlalchemy