Атрибут name класса Sequence
Атрибут name класса Sequence хранит
имя последовательности. Первым параметром
в конструктор Sequence передается
именно это имя. Атрибут возвращает строку,
которая затем используется при генерации
SQL-выражений CREATE SEQUENCE
и NEXTVAL. Значение атрибута доступно
только для чтения.
Синтаксис
sequence.name
Пример
Давайте создадим последовательность и выведем ее имя:
from sqlalchemy import Sequence
seq = Sequence('article_id_seq')
print(seq.name)
Результат выполнения кода:
"article_id_seq"
Пример
Давайте передадим последовательность в колонку таблицы и проверим, что имя сохраняется:
from sqlalchemy import Sequence, Table, Column, Integer, MetaData
metadata = MetaData()
seq = Sequence('article_num_seq', metadata=metadata)
table = Table(
'articles',
metadata,
Column('id', Integer, seq, primary_key=True),
Column('num', Integer)
)
print(seq.name)
print(table.c.id.default.arg.name)
Результат выполнения кода:
"article_num_seq"
"article_num_seq"
Пример
Давайте создадим последовательность с явным именем и посмотрим итоговый SQL-запрос на ее создание:
from sqlalchemy import Sequence, create_engine
from sqlalchemy.schema import CreateSequence
engine = create_engine('sqlite:///:memory:')
seq = Sequence('article_id_seq')
print(CreateSequence(seq).compile(engine))
Итоговый SQL запрос:
CREATE SEQUENCE article_id_seq
Смотрите также
-
класс
Sequence,
который представляет последовательность -
метод
next_value,
который возвращает следующее значение -
метод
create,
который создает последовательность в базе -
атрибут
start,
который задает начальное значение