在sqlalchemy中重新排序复合主键

时间:2016-02-11 02:46:48

标签: python sqlalchemy

我想在定义sqlalchemy表时使用继承。

class DatetimeBase(object):
    inserted = Column(DateTime, primary_key=True)

class OtherTable(DeclarativeBase, DatetimeBase):
    __tablename__ = 'other_table'

    blah = Column(Integer, primary_key=True)
    other_column = Column(Text)

现在我在other_table上有一个复合主键,即(inserted, blah)。但是,为了查询的效率(假设我正在寻找最新的等等),如果时间戳在整数(blah, inserted)之后,那会更好。是否有一些奇特的方法来重新排序主键?

1 个答案:

答案 0 :(得分:3)

是的,使用PrimaryKeyConstraint

class OtherTable(DeclarativeBase, DatetimeBase):
    __tablename__ = 'other_table'

    blah = Column(Integer, primary_key=True)
    other_column = Column(Text)

    __table_args__ = (PrimaryKeyConstraint("blah", "inserted"),)