Метод execution_options класса Connection
Метод execution_options класса Connection
устанавливает опции выполнения для текущего
соединения. Первым параметром передается словарь
с опциями, которые будут применяться ко всем
последующим SQL-запросам на этом соединении.
Метод возвращает тот же самый объект соединения,
что позволяет использовать цепочку вызовов.
Синтаксис
connection.execution_options(**kwargs)
Пример
Давайте создадим соединение и установим опцию
isolation_level для управления уровнем
изоляции транзакций:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn = conn.execution_options(isolation_level='SERIALIZABLE')
res = conn.execute(text('SELECT 1'))
print(res.scalar())
Результат выполнения кода:
"1"
Пример
Давайте установим опцию stream_results
для потоковой передачи результатов запроса:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn = conn.execution_options(stream_results=True)
res = conn.execute(text('SELECT 1'))
print(res.scalar())
Результат выполнения кода:
"1"
Пример
Давайте установим несколько опций одновременно
и проверим их наличие через атрибут
execution_options:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn = conn.execution_options(
isolation_level='SERIALIZABLE',
stream_results=True
)
print(conn.execution_options)
Результат выполнения кода:
{'isolation_level': 'SERIALIZABLE', 'stream_results': True}
Смотрите также
-
класс
Connection,
который представляет соединение с базой данных -
метод
execute,
который выполняет SQL-запрос на соединении -
метод
begin,
который открывает транзакцию на соединении -
атрибут
info,
который хранит пользовательские данные соединения