Создать упорядоченный индекс в sqlite db с помощью SQLAlchemy - PullRequest
1 голос
/ 30 апреля 2019

Я определяю таблицу в SQLAlchemy, используя декларативный API.У него есть внешний ключ, который я хотел бы проиндексировать.У меня вопрос: как определить индекс, созданный из master_ref, как индекс ASC или DESC (не прибегая к тому, чтобы делать это вручную с помощью SQL)?

class Item(Base):
    id = Column(INTEGER, primary_key=True)
    master_ref = Column(INTEGER, ForeignKey('master.id'), nullable=True, index=True)
    value = Column(REAL)

Глядя на документацию SqlAlchemy, можно создать альтернативный способ создания индекса:

class Item(Base):
    id = Column(INTEGER, primary_key=True)
    master_ref = Column(INTEGER, ForeignKey('master.id'))
    value = Column(REAL)
    Index('ix_name', master_ref)

, но я не могу найти никаких ссылок на то, как определить ASC или DESCв любом месте.

1 Ответ

1 голос
/ 30 апреля 2019

Вы можете использовать функциональный индекс , как указано в документации :

Функциональные индексы

Индекс поддерживает SQL и функциювыражения, поддерживаемые целевым бэкэндом.Чтобы создать индекс для столбца, используя значение по убыванию , можно использовать модификатор ColumnElement.desc():

from sqlalchemy import Index

Index('someindex', mytable.c.somecol.desc())

И аналогично для по возрастанию значение, используйте модификатор ColumnElement.asc().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...