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

Метод get_indexes

Метод get_indexes класса Inspector возвращает информацию об индексах таблицы. Первым параметром метод принимает имя таблицы. Вторым необязательным параметром передается имя схемы. Метод возвращает список словарей, каждый из которых описывает один индекс.

Синтаксис

inspector.get_indexes(table_name, [schema])

Пример

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

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Index 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) ) Index('ix_articles_title', articles.c.title) metadata.create_all(engine) inspector = inspect(engine) res = inspector.get_indexes('articles') print(res)

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

[{'name': 'ix_articles_title', 'column_names': ['title'], 'unique': False, 'dialect_options': {}}]

Пример

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

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Index 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('num', Integer) ) Index('ix_articles_num', articles.c.num, unique=True) metadata.create_all(engine) inspector = inspect(engine) res = inspector.get_indexes('articles') print(res)

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

[{'name': 'ix_articles_num', 'column_names': ['num'], 'unique': True, 'dialect_options': {}}]

Пример

Давайте создадим составной индекс по двум колонкам и получим список колонок индекса:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Index 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) ) Index('ix_articles_title_status', articles.c.title, articles.c.status) metadata.create_all(engine) inspector = inspect(engine) res = inspector.get_indexes('articles') print(res)

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

[{'name': 'ix_articles_title_status', 'column_names': ['title', 'status'], 'unique': False, 'dialect_options': {}}]

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

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