在使用sqlalchemy的声明性ORM扩展时,可以使用多列索引。
- 论坛
- 在使用sqlalchemy的声明性ORM扩展时,可以使用多列索引。
14 浏览
在使用sqlalchemy的声明性ORM扩展时,可以使用多列索引。
根据文档和sqlalchemy.Column
类中的注释,我们应该使用sqlalchemy.schema.Index
类来指定包含多列的索引。
然而,示例展示了如何直接使用Table对象来实现:
meta = MetaData() mytable = Table('mytable', meta, # 一个带有索引"ix_mytable_col1"的列 Column('col1', Integer, index=True), # 一个带有唯一索引"ix_mytable_col2"的列 Column('col2', Integer, index=True, unique=True), Column('col3', Integer), Column('col4', Integer), Column('col5', Integer), Column('col6', Integer), ) # 在col3和col4上创建一个索引 Index('idx_col34', mytable.c.col3, mytable.c.col4)
如果我们使用声明性ORM扩展,我们应该如何做呢?
class A(Base): __tablename__ = 'table_A' id = Column(Integer, primary_key=True) a = Column(String(32), index=True) b = Column(String(32), index=True)
我想为列"a"和"b"创建一个索引。