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

Метод get_check_constraints

Метод get_check_constraints класса Inspector возвращает информацию о CHECK-ограничениях указанной таблицы. Метод принимает имя таблицы, а также необязательные параметры schema и kw. В результате возвращается список словарей, каждый из которых описывает одно CHECK-ограничение и содержит ключи name, sqltext и dialect_options.

Синтаксис

inspector.get_check_constraints(table_name, [schema], [**kw])

Пример

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

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, CheckConstraint from sqlalchemy import inspect engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('status', String), Column('num', Integer), CheckConstraint('num > 0', name='positive_num') ) metadata.create_all(engine) inspector = inspect(engine) res = inspector.get_check_constraints('articles') print(res)

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

[{'name': 'positive_num', 'sqltext': 'num > 0', 'dialect_options': {}}]

Пример

Давайте выведем имя и SQL-текст каждого CHECK-ограничения отдельно:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, CheckConstraint from sqlalchemy import inspect engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('status', String), Column('num', Integer), CheckConstraint('num > 0', name='positive_num'), CheckConstraint("status IN ('draft', 'published')", name='valid_status') ) metadata.create_all(engine) inspector = inspect(engine) res = inspector.get_check_constraints('articles') for constraint in res: print(constraint['name'], '-', constraint['sqltext'])

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

"positive_num - num > 0" "valid_status - status IN ('draft', 'published')"

Пример

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

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String from sqlalchemy import inspect engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String) ) metadata.create_all(engine) inspector = inspect(engine) res = inspector.get_check_constraints('articles') print(res)

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

[]

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

  • класс Inspector,
    который выполняет инспекцию схемы базы данных
  • метод get_unique_constraints,
    который возвращает UNIQUE-ограничения таблицы
  • метод get_foreign_keys,
    который возвращает внешние ключи таблицы
  • метод get_pk_constraint,
    который возвращает информацию о первичном ключе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить