在SQLAlchemy中,如果要在MySQL中执行INSERT语句时,如果遇到相同的主键,希望变成UPDATE语句,可以使用on_duplicate_key_update。这个功能在SQLAlchemy 1.2版本中已经内置到MySQL中。
以下是一个示例代码,演示了如何使用on_duplicate_key_update来执行INSERT语句时的更新操作:
python
from sqlalchemy.dialects.mysql import insert
insert_stmt = insert(my_table).values(
id='some_existing_id',
data='inserted value'
)
on_duplicate_key_stmt = insert_stmt.on_duplicate_key_update(
data=insert_stmt.inserted.data,
status='U'
)
conn.execute(on_duplicate_key_stmt)
在这个示例中,insert_stmt是一个INSERT语句,on_duplicate_key_stmt使用了on_duplicate_key_update来指定在遇到相同主键时执行更新操作。
网友评论