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

Метод get_unique_constraints

Метод get_unique_constraints класса Inspector возвращает информацию об уникальных ограничениях (unique constraints) указанной таблицы. Первым параметром метод принимает имя таблицы. Вторым необязательным параметром передается имя схемы. Метод возвращает список словарей, каждый из которых описывает одно уникальное ограничение и содержит ключи name и column_names.

Синтаксис

inspector.get_unique_constraints(table_name, [schema])

Пример

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

from sqlalchemy import create_engine, inspect, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text(''' CREATE TABLE articles ( id INTEGER PRIMARY KEY, title VARCHAR(100), text TEXT, status VARCHAR(50), num INTEGER, CONSTRAINT uq_article_title UNIQUE (title) ) ''')) conn.commit() inspector = inspect(engine) res = inspector.get_unique_constraints('articles') print(res)

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

[{'name': 'uq_article_title', 'column_names': ['title']}]

Пример

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

<+python+> from sqlalchemy import create_engine, inspect, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text(''' CREATE TABLE articles ( id INTEGER PRIMARY KEY, title VARCHAR(100), text TEXT, status VARCHAR(50), num INTEGER, CONSTRAINT uq_article_title_status UNIQUE (title, status) ) ''')) conn.commit() inspector = inspect(engine) res = inspector.get_unique_constraints('articles') print(res) <-python+>

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

[{'name': 'uq_article_title_status', 'column_names': ['title', 'status']}]

Пример

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

from sqlalchemy import create_engine, inspect, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text(''' CREATE TABLE articles ( id INTEGER PRIMARY KEY, title VARCHAR(100), text TEXT, status VARCHAR(50), num INTEGER, CONSTRAINT uq_article_title UNIQUE (title), CONSTRAINT uq_article_num UNIQUE (num) ) ''')) conn.commit() inspector = inspect(engine) res = inspector.get_unique_constraints('articles') for constraint in res: print(constraint['name'], '-', constraint['column_names'])

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

"uq_article_title - ['title']" "uq_article_num - ['num']"

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

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