Метод suffix_with класса Select
Метод suffix_with класса Select добавляет
произвольный текст в конец SQL-запроса. Первым
параметром передаётся строка или выражение,
которое будет добавлено после основного тела
запроса. Метод может принимать несколько
позиционных аргументов, а также параметр
dialect, ограничивающий применение суффикса
конкретным диалектом СУБД.
Синтаксис
select(table).suffix_with(text, [text], [dialect])
Пример
Давайте создадим простой запрос и добавим к нему суффикс:
from sqlalchemy import select, text
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
stmt = select(Article).suffix_with(text('-- custom suffix'))
print(stmt)
Результат выполнения кода:
"SELECT articles.id, articles.title
FROM articles
-- custom suffix"
Пример
Давайте добавим несколько суффиксов одновременно:
from sqlalchemy import select, text
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
stmt = select(Article).suffix_with(
text('-- first suffix'),
text('-- second suffix')
)
print(stmt)
Итоговый SQL запрос:
SELECT articles.id, articles.title
FROM articles
-- first suffix -- second suffix
Пример
Давайте ограничим применение суффикса конкретным диалектом:
from sqlalchemy import select, text
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
from sqlalchemy.dialects import sqlite
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
stmt = select(Article).suffix_with(
text('-- sqlite only'),
dialect='sqlite'
)
print(stmt)
Итоговый SQL запрос:
SELECT articles.id, articles.title
FROM articles
-- sqlite only
Смотрите также
-
класс
Select,
который представляет SELECT-запрос -
метод
prefix_with,
который добавляет префикс в начало запроса -
метод
with_hint,
который добавляет подсказку оптимизатору -
метод
where,
который добавляет условие фильтрации