Flask-SQLAlchemy如何删除单个表中的所有行
如何使用Flask-SQLAlchemy删除单个表中的所有行?
寻找这样的东西:
>>> users = models.User.query.all() >>> models.db.session.delete(users) # but it errs out: UnmappedInstanceError: Class '__builtin__.list' is not mapped
尝试delete
:
models.User.query.delete()
从文档 : Returns the number of rows deleted, excluding any cascades.
DazWorrall的答案是现货。 如果你的代码的结构与OP的结构不同,那么这个变化可能是有用的:
num_rows_deleted = db.session.query(Model).delete()
另外,不要忘记,直到您提交删除才会生效,如下面的代码片段所示:
try: num_rows_deleted = db.session.query(Model).delete() db.session.commit() except: db.session.rollback()
您可以为此启动单个查询。
#for all records db.session.query(Table_name).delete() db.session.commit()
这里db是Flask的SQLAlchemy类的对象。 它会删除它的所有logging,如果你想删除特定的logging,然后在查询中尝试filter_by
子句。 恩。
#for specific value db.session.query(Table_name).filter_by(id==123).delete() db.session.commit()