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

Метод execution_options класса Select

Метод execution_options класса Select задает опции выполнения для отдельного запроса. Первым параметром метод принимает словарь с опциями, которые влияют на выполнение запроса на уровне соединения или драйвера базы данных. Метод возвращает новый объект Select, поэтому его можно использовать в цепочке вызовов.

Синтаксис

select(...).execution_options(**kwargs)

Пример

Давайте создадим запрос с опцией stream_results, которая включает потоковую передачу результатов:

from sqlalchemy import create_engine, select, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article 1')")) conn.execute(text("INSERT INTO articles VALUES (2, 'article 2')")) conn.commit() stmt = select(text('*')).select_from(text('articles')) stmt = stmt.execution_options(stream_results=True) with engine.connect() as conn: res = conn.execute(stmt) for row in res: print(row)

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

(1, 'article 1') (2, 'article 2')

Пример

Давайте зададим опцию isolation_level, чтобы выполнить запрос в режиме AUTOCOMMIT:

from sqlalchemy import create_engine, select, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article 1')")) conn.commit() stmt = select(text('*')).select_from(text('articles')) stmt = stmt.execution_options(isolation_level='AUTOCOMMIT') with engine.connect() as conn: res = conn.execute(stmt) print(res.fetchall())

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

[(1, 'article 1')]

Пример

Давайте применим опцию compiled_cache для управления кэшем скомпилированных запросов:

from sqlalchemy import create_engine, select, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article 1')")) conn.commit() stmt = select(text('*')).select_from(text('articles')) stmt = stmt.execution_options(compiled_cache=None) with engine.connect() as conn: res = conn.execute(stmt) print(res.fetchall())

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

[(1, 'article 1')]

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

  • класс Select,
    который представляет запрос SELECT
  • метод options,
    который задает ORM-опции загрузки
  • метод where,
    который добавляет условие фильтрации
  • метод with_for_update,
    который блокирует выбранные строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить