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

Атрибут autocommit

Атрибут autocommit класса Session возвращает текущий режим автоматической фиксации транзакций. В современных версиях SQLAlchemy данный атрибут всегда имеет значение False, так как начиная с версии 2.0 поддержка автоматической фиксации была полностью удалена. Раньше этот атрибут позволял сессии автоматически завершать транзакцию после каждого запроса.

Синтаксис

session.autocommit

Пример

Давайте создадим сессию и проверим значение атрибута autocommit:

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

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

False

Пример

Давайте убедимся, что атрибут autocommit не изменяется даже после выполнения запросов:

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

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

False

Пример

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

from sqlalchemy import create_engine, text from sqlalchemy.orm import Session engine = create_engine('sqlite:///:memory:') with Session(engine) as session: session.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title VARCHAR)')) session.execute(text("INSERT INTO articles (title) VALUES ('article')")) res = session.execute(text('SELECT * FROM articles')).fetchall() print(res) print(session.autocommit)

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

[(1, 'article')] False

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

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