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

2024-03-02

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

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

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

如果我的数据库已经有汽车red和类型Honda名称为Bob。我不能只说

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

as the // add all Hondas会失败,因为我可能会添加一辆车name as Bob和颜色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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy 在同一事务中删除和插入 的相关文章

随机推荐