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

Атрибут constraints класса Table

Атрибут constraints класса Table возвращает множество (set) всех ограничений, связанных с таблицей. В это множество входят объекты PrimaryKeyConstraint, ForeignKeyConstraint, UniqueConstraint, CheckConstraint и другие. Атрибут доступен только для чтения и формируется автоматически при определении таблицы.

Синтаксис

table.constraints

Пример

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

from sqlalchemy import Table, Column, Integer, String, MetaData metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), ) for constraint in articles.constraints: print(constraint)

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

"PrimaryKeyConstraint(Column('id', Integer(), table=<articles>, primary_key=True, nullable=False))"

Пример

Давайте добавим к таблице уникальное ограничение и ограничение внешнего ключа:

from sqlalchemy import ( Table, Column, Integer, String, MetaData, ForeignKey, UniqueConstraint ) metadata = MetaData() users = Table( 'users', metadata, Column('id', Integer, primary_key=True), Column('name', String), ) articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('user_id', Integer, ForeignKey('users.id')), UniqueConstraint('title', name='uq_articles_title'), ) for constraint in articles.constraints: print(type(constraint).__name__)

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

"PrimaryKeyConstraint" "UniqueConstraint" "ForeignKeyConstraint"

Пример

Давайте отфильтруем ограничения по типу, чтобы получить только уникальные ограничения:

from sqlalchemy import ( Table, Column, Integer, String, MetaData, UniqueConstraint ) metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), UniqueConstraint('title', name='uq_articles_title'), ) unique = [ c for c in articles.constraints if isinstance(c, UniqueConstraint) ] print(unique)

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

"[UniqueConstraint(Column('title', String(), table=<articles>, name='uq_articles_title'))]"

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

  • класс Table,
    который представляет таблицу базы данных
  • метод append_constraint,
    который добавляет ограничение к таблице
  • атрибут primary_key,
    который хранит первичный ключ таблицы
  • атрибут foreign_keys,
    который хранит внешние ключи таблицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить