Метод execution_options класса Engine
Метод execution_options класса Engine возвращает
новый объект движка, который имеет те же настройки
подключения, что и исходный, но с дополнительными
опциями выполнения. Первым параметром метод принимает
словарь с опциями. Опции выполнения влияют на то,
как именно будут исполняться SQL-запросы: например,
включают автоматическую фиксацию транзакций или
настраивают поведение диалекта. Метод не изменяет
исходный движок, а создает его копию с новыми
опциями.
Синтаксис
engine.execution_options(**opts)
Метод принимает произвольный набор именованных параметров, которые становятся опциями выполнения для нового движка.
Пример
Давайте создадим движок и получим его копию с опцией автоматической фиксации:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
engine2 = engine.execution_options(isolation_level='AUTOCOMMIT')
print(engine is engine2)
print(engine2)
Результат выполнения кода:
False
Engine(sqlite:///:memory:)
Пример
Давайте передадим опцию stream_results, которая
включает потоковую выборку результатов:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
engine_stream = engine.execution_options(stream_results=True)
with engine_stream.connect() as conn:
res = conn.execute(text('SELECT 1'))
print(res.scalar())
Результат выполнения кода:
1
Пример
Давайте посмотрим, как опции выполнения сохраняются в новом движке и применяются к соединениям:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
engine_opts = engine.execution_options(
isolation_level='AUTOCOMMIT',
stream_results=True,
)
with engine_opts.connect() as conn:
print(conn.execution_options)
res = conn.execute(text('SELECT 1'))
print(res.scalar())
Результат выполнения кода:
{'isolation_level': 'AUTOCOMMIT', 'stream_results': True}
1
Смотрите также
-
класс
Engine,
который представляет движок базы данных -
метод
connect,
который открывает соединение с базой -
метод
update_execution_options,
который изменяет опции выполнения движка на месте -
метод
begin,
который открывает транзакцию на движке