SQLAlchemy关系级联删除

2024-05-23 14:28:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经阅读了文档,但是我似乎仍然不能确切地理解如何正确配置我的模型。这是一个非常简单的电视节目数据库,我想对它进行配置,以便一个插曲必须有一个对应的节目父实例存在于数据库中。每当一个节目被删除,我希望它的所有剧集都被级联删除。

TL;DR:show.delete()-->;删除ep.show_id==show.id的所有剧集

我该怎么做?

class Show(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(128), nullable=False)

class Episode(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(256), nullable=False)

    # relationships
    show_id = db.Column(db.Integer, db.ForeignKey('show.id'), nullable=False)
    show = db.relationship('Show',
                           backref=db.backref('episodes'),
                           lazy='joined')

Tags: keyid数据库falsedbmodelshowcolumn