表中的sqlachemy更新值不会更新关联表中的值

时间:2017-09-13 08:09:31

标签: python python-3.x sqlalchemy

我想更新表中具有一对多关系的列。 但我无法找到一种方法来使更新影响关系表。以下是代码示例,我尝试使用back_populates进行更改,无论是否有onupdatecascade,但它似乎对我想要的内容没有任何影响做

class Employe(Base):

    __tablename__ = 'employes'
    id = Column(Integer, primary_key=True)
    service_name = Column(String, ForeignKey('services.name', onupdate="CASCADE"))


class Service(Base):

    __tablename__ = 'services'

    name = Column(String, primary_key=True)
    employers = relationship('Employe', backref=backref('service', cascade="all"))



a = session.query(Service).filter_by(name='ECTC').update({'name' : 'SECTC'})
session.commit()

这确实改变了services.name,但是保持列service_name不变。 因此,当我想查询session.query(Employe).filter_by(service_name='SECTC')时,我得不到任何结果 有没有办法让更新影响两个表? 否则,我可以在每次需要更新服务时选择,删除和重新创建雇员,但这对我来说似乎并不是最佳选择。

感谢您的帮助!

0 个答案:

没有答案