sqlalchemy多会话提交无提示失败,如何将INSERT更改为UPDATE

时间:2012-08-29 13:18:52

标签: python mysql session sqlalchemy

我有一个Event模型,其中external_id设置为唯一。

    session1 = create_session()
    session2 = create_session()

    e1 = Event(external_id=1, headline='session1')
    session1.add(e1)
    e2 = Event(external_id=1, headline='session2')
    session2.add(e2)
    session1.commit()
    session2.commit()
    s = create_session()
    e = s.query(Event).filter_by(external_id=1).first()
    print e.headline

我收到输出“session1”没有错误,这意味着session2.commit失败,默默无闻。最终我想选择是否要覆盖db中的内容。因此,如果session2.commit()失败,我想选择更改插入以更新某些情况。任何人都可以帮忙吗?感谢。

EDITED: 我找到了答案。这样做的方法是通过双通机制:   两个会话都应该使用最少的信息添加/提交行(仅限唯一键)   两个会话都应该进行查询并获取更新行   如果我们想要一个会话具有优先权,请确保我们使用锁来进行更新

0 个答案:

没有答案