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

Метод create класса Index

Метод create класса Index создает индекс в базе данных. Первым параметром метод принимает объект подключения bind, через который выполняется SQL-запрос на создание индекса. Если индекс уже существует, будет вызвано исключение, если не указан параметр checkfirst.

Синтаксис

Index.create(bind, [checkfirst])

Пример

Давайте создадим таблицу articles и индекс по столбцу title, а затем вызовем метод create:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Index engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer) ) metadata.create_all(engine) title_index = Index('ix_articles_title', articles.c.title) with engine.connect() as conn: title_index.create(conn) print('Index created')

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

"Index created"

Пример

Давайте используем параметр checkfirst, чтобы избежать ошибки при повторном создании индекса:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Index engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer) ) metadata.create_all(engine) title_index = Index('ix_articles_title', articles.c.title) with engine.connect() as conn: title_index.create(conn, checkfirst=True) title_index.create(conn, checkfirst=True) print('Index created twice safely')

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

"Index created twice safely"

Пример

Давайте создадим составной индекс по столбцам status и num:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Index engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer) ) metadata.create_all(engine) composite_index = Index('ix_articles_status_num', articles.c.status, articles.c.num) with engine.connect() as conn: composite_index.create(conn) print('Composite index created')

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

"Composite index created"

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

  • класс Index,
    который представляет индекс базы данных
  • метод create,
    который создает индекс в базе данных
  • метод drop,
    который удаляет индекс из базы данных
  • класс Index,
    который используется для описания индексов таблицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить