class Test(Model):
__tablename__ = 'tests'
id = Column(Integer, Sequence('test_id_seq'), primary_key=True)
...
Atest_id = Column(Integer, ForeignKey('Atests.id'), nullable=True)
Btest_id = Column(Integer, ForeignKey('Btests.id'), nullable=True)
Ctest_id = Column(Integer, ForeignKey('Ctests.id'), nullable=True)
Dtest_id = Column(Integer, ForeignKey('Dtests.id'), nullable=True)
Etest_id = Column(Integer, ForeignKey('Etests.id'), nullable=True)
...
date = Column(DateTime)
status = Column(String(20)) # pass, fail, needs_review
我希望确保在给定行中只存在一个*test_id
外键,我该如何在SQLAlchemy
中实现?
我看到有一个SQLAlchemy
的CheckConstraint
对象(请参见文档),但是MySQL
不支持检查约束。
数据模型与SQLAlchemy
之外进行交互,因此最好是在数据库级别上进行检查(MySQL
)。
n
列的检查。 - Brian Leach