【发布时间】:2019-12-11 17:49:29
【问题描述】:
我想使用 SQLAlchemy 提供的 ON DUPLICATE KEY UPDATE 选项来更新一组记录。
这些记录已经成功地被python使用以下方法插入(其中connection是engine.connect()对象,table是一个Table对象)
record_list = [{'col1': 'name1', 'col2': '2015-01-31', 'col3': 27.2},
{'col1': 'name1', 'col2': '2016-01-31', 'col3': 25.2}]
query = insert(table)
results = connection.execute(query, record_list)
查看https://docs.sqlalchemy.org/en/13/dialects/mysql.html#insert-on-duplicate-key-update-upsert 的文档以及一些 SO 问题(包括在SQLAlchemy ON DUPLICATE KEY UPDATE 的 cmets 下可能提出的建议)我尝试了许多不同的示例,但没有一个我可以使用此方法使用 upsert 语句查看该地址的多条记录。
我正在尝试
query = insert(table).values(record_list)
upsert_query = query.on_duplicate_key_update()
results = connection.execute(upsert_query)
但要么得到 .on_duplicate_key_update() 要求不能为空或 SQL 语法错误的问题。
如果有人成功管理并可以帮助我解决这里的代码结构,我将不胜感激。
【问题讨论】:
标签: python mysql sqlalchemy