sqlalchemy ORM:如何声明包含多列主键的表类?

时间:2012-01-27 13:55:33

标签: python sqlalchemy

主键的列必须按特定顺序排列。

我看到文档中的一些代码:

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer)

    __mapper_args__ = {
        'primary_key':[id]
    }

但它只是不起作用(我正在使用mysql,并且不会生成id主键)。 任何可能的解决方

1 个答案:

答案 0 :(得分:38)

如果列的声明顺序与它们在主键中的顺序相同:

class User(Base):
    field1 = Column(Integer, primary_key=True)
    field2 = Column(Integer, primary_key=True)

否则在__table_args__

中声明
class User(Base):
    field1 = Column(Integer)
    field2 = Column(Integer)
    __table_args__ = (
        PrimaryKeyConstraint('field2', 'field1'),
        {},
    )