我正在使用声明性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的参考。
答案 0 :(得分:1)
您可以使用documentation中指定的功能索引:
功能索引
索引支持SQL和函数表达式,如 目标后端。使用降序为列创建索引 值,可以使用
ColumnElement.desc()
修饰符:from sqlalchemy import Index Index('someindex', mytable.c.somecol.desc())
同样,对于升值,请使用ColumnElement.asc()
修饰符。