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

Метод next_value

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

Синтаксис

Sequence('name').next_value()

Пример

Давайте создадим последовательность и получим выражение для следующего значения:

from sqlalchemy import Sequence seq = Sequence('article_id_seq') expr = seq.next_value() print(expr)

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

"next_value(article_id_seq)"

Пример

Давайте выполним выражение next_value в запросе к базе данных SQLite:

from sqlalchemy import create_engine, Sequence, select engine = create_engine('sqlite:///:memory:') seq = Sequence('article_id_seq') with engine.connect() as conn: conn.execute(seq.create()) res = conn.execute(select(seq.next_value())).scalar() print(res)

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

1

Пример

Давайте используем next_value как значение по умолчанию для колонки id в модели:

from sqlalchemy import Sequence from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column article_id_seq = Sequence('article_id_seq') class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column( article_id_seq, server_default=article_id_seq.next_value(), primary_key=True, ) title: Mapped[str] text: Mapped[str]

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

  • класс Sequence,
    который представляет последовательность
  • метод create,
    который создает последовательность
  • метод drop,
    который удаляет последовательность
  • атрибут name,
    который хранит имя последовательности
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить