2016-02-11 2 views
1

Я хочу использовать наследование при определении моих таблиц 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). Есть ли какой-нибудь причудливый способ изменить порядок первичного ключа?

ответ

2

Да, с помощью PrimaryKeyConstraint:

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

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

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

Я видел существование PrimarKeyConstraint, но я не знаю, что с ним делать. Я не знал, что вы можете использовать __table_args__ таким образом. Благодарю. – artdv

Смежные вопросы