小编kow*_*pow的帖子

Python SQLAlchemy ON DUPLICATE KEY UPDATE 具有多条记录

我想使用 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)
Run Code Online (Sandbox Code Playgroud)

查看https://docs.sqlalchemy.org/en/13/dialects/mysql.html#insert-on-duplicate-key-update-upsert上的文档以及许多 SO 问题(包括可能的建议在SQLAlchemy ON DUPLICATE KEY UPDATE的评论下)我尝试了许多不同的示例,但没有一个我可以看到使用此方法通过 upsert 语句处理多个记录。

我正在尝试沿着

query = insert(table).values(record_list)
upsert_query = query.on_duplicate_key_update()
results = connection.execute(upsert_query)
Run Code Online (Sandbox Code Playgroud)

但要么遇到 .on_duplicate_key_update() 要求不能为空的问题,要么 SQL 语法错误。

如果有人成功管理并可以帮助我处理这里的代码结构,我将非常感激。

python mysql sqlalchemy

0
推荐指数
1
解决办法
3950
查看次数

标签 统计

mysql ×1

python ×1

sqlalchemy ×1