如果你想对多列强制执行唯一约束,你可以像这样显式设置它:
__tablename__ = 'dummies'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=True)
value = db.Column(db.String(100), nullable=True)
sum_id = db.Column(db.Integer, db.ForeignKey('pattern.id'), nullable=False)
UniqueConstraint('name', 'value', 'sum_id'
name='myMultipleColumnUniqueConstraint')
这样您可以强制执行多列唯一性约束。也只是想指出
onupdate => refers to a default value for the column.
据我所知,sqlAlchemy 中没有 ondelete。但你可以使用:
cascade = "all, delete-orphan" ```
on Parent Table relationship to achieve the same effect as ondelete="cascade" as in django.
类 ParentDummies(db.Model):
dummies= relationship("Dummy", cascade="all, delete-orphan")
Also, if you are trying make those columns as composite primary key, you can do so like this:
``` class Dummies(db.Model):
__tablename__ = 'dummies'
id = db.Column(db.Integer)
name = db.Column(db.String(100), nullable=True)
value = db.Column(db.String(100), nullable=True)
sum_id = db.Column(db.Integer, db.ForeignKey('pattern.id', nullable=False),
PrimaryKeyConstrain('name', 'value', 'sum_id', name="myCompositePk")
或
class Dummies(db.Model):
__tablename__ = 'dummies'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(100), nullable=True, primary_key=True)
value = db.Column(db.String(100), nullable=True, primary_key=True)
sum_id = db.Column(db.Integer, db.ForeignKey('pattern.id'), nullable=False, primary_key=True)