Метод close
Метод close закрывает соединение с базой данных.
Он не принимает параметров. После вызова метода
соединение становится недействительным, а все связанные
с ним транзакции откатываются. Соединение возвращается
в пул движка для повторного использования.
Если соединение уже было закрыто, повторный вызов close
не вызывает ошибки и не выполняет никаких действий.
Метод не возвращает значения.
Синтаксис
connection.close()
Пример
Давайте откроем соединение с базой SQLite в памяти
и закроем его методом close:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
conn = engine.connect()
conn.close()
print(conn.closed)
Результат выполнения кода:
True
Пример
Метод close можно вызвать несколько раз подряд
без возникновения ошибки:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
conn = engine.connect()
conn.close()
conn.close()
print(conn.closed)
Результат выполнения кода:
True
Пример
При закрытии соединения незавершенная транзакция автоматически откатывается:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
conn = engine.connect()
conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)'))
conn.execute(text("INSERT INTO articles VALUES (1, 'article')"))
conn.close()
print(conn.closed)
Результат выполнения кода:
True
Смотрите также
-
класс
Connection,
который представляет соединение с базой данных -
метод
commit,
который фиксирует текущую транзакцию -
метод
rollback,
который откатывает текущую транзакцию -
атрибут
closed,
который показывает, закрыто ли соединение