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

Метод in_transaction

Метод in_transaction класса Connection возвращает True, если в данный момент в соединении активна транзакция, и False в противном случае. Метод не принимает параметров и используется для проверки состояния соединения перед выполнением операций, требующих явного управления транзакцией.

Синтаксис

Connection.in_transaction()

Пример

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

from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: print(conn.in_transaction())

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

False

Пример

Давайте выполним запрос и снова проверим состояние транзакции. После выполнения запроса SQLAlchemy автоматически открывает транзакцию:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: print(conn.in_transaction()) conn.execute(text('SELECT 1')) print(conn.in_transaction())

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

False True

Пример

Давайте явно откроем транзакцию методом begin и проверим ее состояние:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: with conn.begin(): print(conn.in_transaction()) conn.execute(text('SELECT 1')) print(conn.in_transaction())

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

True False

Пример

Давайте проверим состояние транзакции после вызова метода commit. После фиксации транзакция завершается:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT)')) print(conn.in_transaction()) conn.commit() print(conn.in_transaction())

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

True False

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

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