Index mit mehreren Spalten bei Verwendung der deklarativen ORM-Erweiterung von sqlalchemy

Laut die Dokumentation und die Kommentare in der sqlalchemy.Column Klasse, sollten wir die Klasse sqlalchemy.schema.Index angeben einen index, der mehrere Spalten enthält.

Aber das Beispiel zeigt, wie es zu tun, direkt über der Tabelle-Objekt wie folgt:

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)

Wie sollten wir es tun, wenn wir die deklarative ORM Erweiterung?

class A(Base):
    __tablename__ = 'table_A'
    id = Column(Integer, , primary_key=True)
    a = Column(String(32))
    b = Column(String(32))

Möchte ich ein index auf Spalte "a" und "b".

InformationsquelleAutor der Frage yorjo | 2011-07-08

Schreibe einen Kommentar