Python SQLModel — усечь таблицу или удалить все и получить количество строк

#python #sqlalchemy #sqlmodel

Вопрос:

Используя Python SQLModel, я хочу усечь таблицу или удалить все строки и получить количество удаленных строк наиболее стандартным способом SQLModel. Как я могу это сделать? Я использую это:

         with Session(engine) as session:
            count = session.exec(delete(MyModel)).fetchall()
            session.commit()
 

Но это вызывает ошибку:

 ResourceClosedError('This result object does not return rows. It has been closed automatically.')
 

Я также пробовал scalar() и fetchone() вместо fetchall() безуспешно.

Ответ №1:

 with Session(engine) as session:
    statement = delete(MyModel)
    result = session.exec(statement)
    session.commit()
    print(result.rowcount)
 

Количество совпадающих строк