2017-02-08 2 views
1

Учитывая эти модели 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"),) 
Смежные вопросы