SQLAlChemy在同一事务中删除和插入

SQLAlchemy Delete And Insert in Same Transaction(SQLAlChemy在同一事务中删除和插入)

本文介绍了SQLAlChemy在同一事务中删除和插入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用SQLAlChemy,并且在一个事务中,我想要执行以下操作:

  1. 删除符合特定条件(假设为Cars.color == red)的所有记录。
  2. 现在,我想插入符合特定条件(例如Cars.type == Honda)的所有汽车。

现在假设我的数据库只是一个包含3列(namecolortype)的表,name作为主键。

如果我的数据库已经有redHonda类型的汽车,名称为Bob。我不能就这么说

Cars.query.filter(Cars.name == red).delete()
// add all Hondas
db.session.commit()

as// add all Hondas将失败,因为我可能会使用nameasBob和颜色red添加一辆汽车。如何执行删除操作并将删除操作作为一项操作的一部分?

参考:我正在使用MySQL。

推荐答案

您可以尝试此操作:

db.session.query(Cars).filter(Cars.name == red).delete()
 // add all Hondas
for h in Hondas:
    db.session.add(h)
db.session.commit()

这篇关于SQLAlChemy在同一事务中删除和插入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:SQLAlChemy在同一事务中删除和插入

基础教程推荐