이 질문에 대한 제목이 정확하지 않은 것 같습니다. 나는 내 모든 테이블에 충분히 고유 제한 조건을 추가 할 수 있지만 경우에 난 후에 난 무엇을 해야할지 모르겠습니다 이하 : 그래서 지점에 고유 한 제약 조건을 추가 할 때SQLAlchemy 및 MySQL의 일대 다 관계에있는 열에 대한 고유 제한
class Branch(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(160))
#foreign key for 'branches' in Account class. access with Branch.account
account_id = db.Column(db.Integer, db.ForeignKey('account.id'))
class Account(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(160), unique=True)
branches = db.relationship('Branch', backref = 'account', lazy = 'dynamic')
을 테이블의 이름 열에 다른 계정에 같은 이름의 분기를 추가 할 수 없습니다. 예를 들어, Seattle은 AccountA와 AccountB의 지점이 될 수 있습니다.
내가 원하는 것은 account.id가 동일한 경우에만 고유성을 검사하는 제약 조건을 적용하는 것입니다. 이것이 가능한가?
__table_args__ = (db.UniqueConstraint('account_id', 'name', name='_account_branch_uc'),
)
내 지점 클래스에 다음을 통해 증류기로 데이터베이스에 밀어 :
가능한 중복 [여러 열에 걸쳐 고유 한 sqlalchemy] (http://stackoverflow.com/questions/10059345/sqlalchemy-unique-across-multiple-columns) – dirn
정확한 복제. 링크를 가져 주셔서 감사합니다 - 그것은 내가 필요한 솔루션으로 나를 도왔습니다! – Chockomonkey