РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
149 of 711 menu

Метод close

Метод close класса SessionTransaction закрывает транзакцию и освобождает связанные с ней ресурсы. Если транзакция еще не была зафиксирована или откачена, метод выполняет откат, после чего помечает транзакцию как закрытую. Повторный вызов метода не приводит к ошибке. Параметров метод не принимает.

Синтаксис

SessionTransaction.close()

Пример

Давайте создадим сессию и получим объект транзакции, а затем закроем ее методом close:

from sqlalchemy import create_engine from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: transaction = session.begin() print(transaction) transaction.close() print(transaction.is_active)

Результат выполнения кода:

"<sqlalchemy.orm.session.SessionTransaction object at 0x...>" False

Пример

Давайте выполним SQL-запрос внутри транзакции, а затем закроем ее, не подтверждая изменения:

from sqlalchemy import create_engine, text from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: transaction = session.begin() session.execute(text('SELECT 1')) transaction.close() print('transaction closed')

Результат выполнения кода:

"transaction closed"

Пример

Давайте создадим таблицу, добавим запись и закроем транзакцию методом close, чтобы изменения не были зафиксированы:

from sqlalchemy import create_engine, text from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: transaction = session.begin() session.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) session.execute(text("INSERT INTO articles VALUES (1, 'article')")) transaction.close() print('changes rolled back')

Результат выполнения кода:

"changes rolled back"

Смотрите также

  • класс SessionTransaction,
    который представляет транзакцию сессии
  • метод commit,
    который фиксирует транзакцию
  • метод rollback,
    который откатывает транзакцию
  • метод close,
    который закрывает транзакцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить