1

使用 SQLAlchemy,我对复合键 (?)、uniqueconstraint、primarykeyconstraint 等感到有些困惑。如何创建一个在 2 列上唯一的类,并引用该唯一组合?假设每个User人都是独一无二的name和的组合email

class User(Base):
    __tablename__ = 'user'
    name = Column(String)
    email = Column(String)

我应该使用UniqueConstraint吗?:

class User(Base):
    __tablename__ = 'user'
    name = Column(String)
    email = Column(String)
    __table_args__ = (UniqueConstraint(name, email), )

但是我如何从另一个类中引用特定用户呢?

4

1 回答 1

2

感谢您的反馈。事实证明,primary_key=True向每一列添加 a 会自动创建一个复合主键,这意味着组合必须是唯一的,但每一列单独不必是唯一的。所以这就足够了:

class User(Base):
    __tablename__ = 'user'
    name = Column(String, primary_key=True)
    email = Column(String, primary_key=True)
于 2020-12-14T22:16:52.937 回答