从父级中删除子级时自动删除子级而不删除父级

时间:2021-04-23 09:09:05

标签: python sqlalchemy rdbms

存在一对多的关系。在 sqlalchemy 中用此代码表示

class Parent(Base):
    __tablename__ = 'parent'
    id = Column(Integer, primary_key=True)
    children = relationship("Child")

class Child(Base):
    __tablename__ = 'child'
    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey('parent.id'))

在我的概念中,Child 不能没有父级而存在。所以 parent_id 不允许是 NULL。当我从 Child 中删除 Parent 时,它应该自动被删除。我不确定这是否可行,或者这是否属于关系数据库管理系统概念的一部分。

目前我这样做

child = parent.children[0]
parent.children.remove(child)
session.delete(child)

我想要的是这个

child = parent.children[0]
parent.children.remove(child)

或者这个

child = parent.children[0]
session.delete(child)

0 个答案:

没有答案