Класс Sequence
Класс Sequence создает объект последовательности базы данных.
Последовательности часто используются для генерации уникальных
числовых значений, например, для первичных ключей. Класс принимает
имя последовательности, а также может принимать дополнительные
параметры, такие как начальное значение, шаг инкремента и схема.
Синтаксис
Sequence(name, [start], [increment], [schema])
Пример
Давайте создадим простую последовательность с именем
article_id_seq и выведем информацию о ней:
from sqlalchemy import Sequence
seq = Sequence('article_id_seq')
print(seq.name)
Результат выполнения кода:
"article_id_seq"
Пример
Давайте создадим последовательность с начальным значением и шагом инкремента:
from sqlalchemy import Sequence
seq = Sequence('article_num_seq', start=100, increment=5)
print(seq.start)
print(seq.increment)
Результат выполнения кода:
100
5
Пример
Давайте используем последовательность в качестве значения по умолчанию для колонки таблицы:
from sqlalchemy import create_engine, Column, Integer, String, Sequence
from sqlalchemy.orm import DeclarativeBase
class Base(DeclarativeBase):
pass
article_id_seq = Sequence('article_id_seq')
class Article(Base):
__tablename__ = 'articles'
id = Column(Integer, article_id_seq, primary_key=True)
title = Column(String(100))
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
from sqlalchemy.orm import Session
with Session(engine) as session:
article = Article(title='article')
session.add(article)
session.commit()
print(article.id)
Результат выполнения кода:
1
Смотрите также
-
класс
Sequence,
который представляет последовательность базы данных -
метод
next_value,
который возвращает следующее значение последовательности -
метод
create,
который создает последовательность в базе данных -
атрибут
name,
который хранит имя последовательности