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

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

Атрибут indexes класса Table возвращает коллекцию объектов Index, которые определены для данной таблицы. Индексы ускоряют поиск и выборку данных по определенным столбцам. Атрибут доступен только для чтения и автоматически обновляется при добавлении новых индексов через метод append_constraint или при определении индексов в момент создания таблицы.

Синтаксис

table.indexes

Пример

Давайте создадим таблицу с индексом и посмотрим на содержимое атрибута indexes:

from sqlalchemy import Table, Column, Integer, String, MetaData, Index metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('status', String) ) idx = Index('ix_articles_title', articles.c.title) print(articles.indexes)

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

{Index('ix_articles_title', Column('title', String(), table=<articles>))}

Пример

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

from sqlalchemy import Table, Column, Integer, String, MetaData, Index 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) Index('ix_articles_status', articles.c.status) for index in articles.indexes: print(index.name, [col.name for col in index.columns])

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

"ix_articles_title ['title']" "ix_articles_status ['status']"

Пример

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

from sqlalchemy import Table, Column, Integer, String, MetaData, Index 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) print(len(articles.indexes)) for index in articles.indexes: print(index.name)

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

"1" "ix_articles_title_status"

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

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