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

Тип Uuid

Тип Uuid создает колонку для хранения значений типа UUID (Universally Unique Identifier). Первый параметр as_uuid определяет, будут ли значения возвращаться как объекты uuid.UUID или как строки. По умолчанию параметр равен True. Тип автоматически подбирает нативный тип UUID для используемой СУБД, например UUID в PostgreSQL или CHAR(32) в SQLite.

Синтаксис

Uuid(as_uuid=True, native_uuid=True)

Пример

Давайте создадим таблицу с полем UUID и вставим в нее запись:

import uuid from sqlalchemy import create_engine, Uuid, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, default=uuid.uuid4) title: Mapped[str] = mapped_column(String) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article') session.add(article) session.commit() print(article.id)

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

"4b8c1f2e-9a3d-4c5b-8e7f-1a2b3c4d5e6f"

Пример

Давайте сохраним UUID как строку, указав параметр as_uuid=False:

import uuid from sqlalchemy import create_engine, Uuid, String from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[str] = mapped_column(Uuid(as_uuid=False), primary_key=True, default=lambda: str(uuid.uuid4())) title: Mapped[str] = mapped_column(String) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article') session.add(article) session.commit() print(article.id) print(type(article.id))

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

"4b8c1f2e-9a3d-4c5b-8e7f-1a2b3c4d5e6f" <class 'str'>

Пример

Давайте выполним запрос на выборку статьи по ее UUID:

import uuid from sqlalchemy import create_engine, Uuid, String, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, default=uuid.uuid4) title: Mapped[str] = mapped_column(String) engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: article = Article(title='article') session.add(article) session.commit() article_id = article.id res = session.scalars(select(Article).where(Article.id == article_id)).one() print(res.title)

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

"article"

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

  • тип UUID,
    который является диалектным синонимом Uuid
  • тип String,
    который хранит строковые значения
  • тип LargeBinary,
    который хранит бинарные данные
  • тип Integer,
    который хранит целые числа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить