使用SQLAlchemy在sqlite db中创建有序索引

时间:2019-04-30 13:05:56

标签: python sqlite sqlalchemy

我正在使用声明性API在SQLAlchemy中定义一个表。它有一个我想索引的外键。我的问题是:如何将由master_ref创建的索引定义为 ASC DESC 索引(而不必借助SQL手动进行操作)?< / p>

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

看看SqlAlchemy的documentation,创建索引的另一种方法是:

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 个答案:

答案 0 :(得分:1)

您可以使用documentation中指定的功能索引

  

功能索引

     

索引支持SQL和函数表达式,如   目标后端。使用降序为列创建索引   值,可以使用ColumnElement.desc()修饰符:

from sqlalchemy import Index

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

同样,对于值,请使用ColumnElement.asc()修饰符。