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

Атрибут start класса Sequence

Атрибут start класса Sequence задает начальное значение последовательности. По умолчанию оно равно 1. Это значение определяет, с какого числа начнется генерация значений при первом обращении к последовательности.

Атрибут доступен как при создании объекта Sequence через параметр start, так и для чтения через одноименное свойство.

Синтаксис

Sequence(name, start=1)

Свойство для чтения значения:

sequence.start

Пример

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

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

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

"1"

Пример

Давайте зададим начальное значение явно через параметр start:

from sqlalchemy import Sequence seq = Sequence('article_id_seq', start=100) print(seq.start)

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

"100"

Пример

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

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

При вставке первой строки в таблицу articles поле id получит значение 1000, а каждая следующая строка увеличит его на шаг последовательности.

Пример

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

from sqlalchemy import Sequence, create_engine, text engine = create_engine('sqlite:///:memory:') seq = Sequence('article_id_seq', start=50) print(seq.start) with engine.connect() as conn: conn.execute(text('SELECT 1'))

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

"50"

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

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