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

Метод commit класса Connection

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

Синтаксис

Connection.commit()

Пример

Давайте создадим таблицу и зафиксируем изменения методом 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)')) conn.execute(text("INSERT INTO articles (title) VALUES ('article')")) conn.commit() res = conn.execute(text('SELECT title FROM articles')) print(res.fetchall())

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

[('article',)]

Пример

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

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)')) conn.execute(text("INSERT INTO articles (title) VALUES ('article')")) conn.commit() conn.execute(text("INSERT INTO articles (title) VALUES ('user')")) conn.rollback() res = conn.execute(text('SELECT title FROM articles')) print(res.fetchall())

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

[('article',)]

Пример

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

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)')) conn.execute(text("INSERT INTO articles (title) VALUES ('article')")) conn.execute(text("INSERT INTO articles (title) VALUES ('user')")) conn.commit() res = conn.execute(text('SELECT COUNT(*) FROM articles')) print(res.scalar())

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

2

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

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