Nice programing

Flask-SQLAlchemy 단일 테이블에서 모든 행을 삭제하는 방법

nicepro 2020. 10. 8. 19:00
반응형

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()

플라스크 -Sqlalchemy

#for all records
db.session.query(Model).delete()
db.session.commit()

여기서 DB는 개체 Flask-SQLAlchemy 클래스입니다. 모든 레코드를 삭제하고 특정 레코드를 삭제하려면 filter쿼리에서 절 을 시도 하십시오. 전의.

#for specific value
db.session.query(Model).filter(Model.id==123).delete()
db.session.commit()

참고 URL : https://stackoverflow.com/questions/16573802/flask-sqlalchemy-how-to-delete-all-rows-in-a-single-table

반응형