小编jup*_*nes的帖子

Sqlalchemy 继承 - 删除子行而不删除父行?

class Employee(Base):
    __tablename__ = 'employee'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    type = Column(String(50))

    __mapper_args__ = {
        'polymorphic_identity':'employee',
        'polymorphic_on':type
    }
class Engineer(Employee):
    __tablename__ = 'engineer'
    id = Column(Integer, ForeignKey('employee.id'), primary_key=True)
    engineer_name = Column(String(30))

    __mapper_args__ = {
        'polymorphic_identity':'engineer',
    }

e = Engineer()
session.add(e)
session.commit()
Run Code Online (Sandbox Code Playgroud)

创建 Engineer 对象将在员工表和工程师表中添加一行。

session.delete(e)
session.commit()
Run Code Online (Sandbox Code Playgroud)

现在,当我删除工程师对象时,我只想删除工程师表中的行而不是员工表中的行。我如何实现这一目标?现在两个表中的行都被删除了。

任何帮助/建议将不胜感激。

python inheritance sqlalchemy

4
推荐指数
1
解决办法
2271
查看次数

标签 统计

inheritance ×1

python ×1

sqlalchemy ×1