在多个外键上组合唯一键
Posted
技术标签:
【中文标题】在多个外键上组合唯一键【英文标题】:Compose unique key on multiple foreign keys 【发布时间】:2017-02-08 00:21:36 【问题描述】:鉴于这些 SQLAlchemy 模型:
class Key():
key_id = Column('id', Integer, primary_key=True, autoincrement=True)
name = Column(String(255))
class House():
house_id = Column('id', Integer, primary_key=True, autoincrement=True)
name = Column(String(255))
class HouseKey():
house_key_id = Column('id', Integer, primary_key=True, autoincrement=True)
house_id = Column(Integer, ForeignKey('house.id'))
key_id = Column(Integer, ForeignKey('key.id'))
UniqueConstraint('house_id', 'key_id')
house = relationship('House', foreign_keys=[house_id])
key = relationship('Key', foreign_keys=[key_id])
house_id, key_id
唯一键未创建。我相信this 是原因(如果我错了,请纠正我)。
如何在也是外键的列上创建复合唯一键?
【问题讨论】:
【参考方案1】:表级UNIQUE
约束进入__table_args__
:
class HouseKey(Base):
...
__table_args__ = (UniqueConstraint("house_id", "key_id"),)
【讨论】:
以上是关于在多个外键上组合唯一键的主要内容,如果未能解决你的问题,请参考以下文章