bildiren ORM uzantısını kullanırken birden çok sütun dizini the documentation ve sqlalchemy.Column
sınıfındaki yorumlara göre, birden çok sütun içeren bir dizin belirtmek için sqlalchemy.schema.Index
sınıfını kullanmamız gerekir.sqlalchemy bildirgesinin
Ancak örnek doğrudan böyle Tablo nesnesini kullanarak bunu nasıl gösterir:
meta = MetaData()
mytable = Table('mytable', meta,
# an indexed column, with index "ix_mytable_col1"
Column('col1', Integer, index=True),
# a uniquely indexed column with index "ix_mytable_col2"
Column('col2', Integer, index=True, unique=True),
Column('col3', Integer),
Column('col4', Integer),
Column('col5', Integer),
Column('col6', Integer),
)
# place an index on col3, col4
Index('idx_col34', mytable.c.col3, mytable.c.col4)
biz bildirim ORM uzantısı kullanırsam bunu yapmalıyım nasıl
?
class A(Base):
__tablename__ = 'table_A'
id = Column(Integer, , primary_key=True)
a = Column(String(32))
b = Column(String(32))
"a" ve "b" sütunlarında bir dizin istiyorum. , Bir bileşik endeksi isterseniz, yine Table
zamanki gibi burada mevcut olduğu
class A(Base):
__tablename__ = 'table_A'
id = Column(Integer, primary_key=True)
a = Column(String(32), index=True)
b = Column(String(32), index=True)
sadece bunu beyan etmek gerekmez:
- aslen nefis sorular:
__table_args__
aracılığıylaolan argümanlar, Declarative ile hangi * için "birden çok çoklu dizin içeren bir dizin" *). Ama zzzeek'in cevabı her iki olaya da hitap ettiğinden, sanırım. –