SQLAlchemy更新既不起作用也不引发错误

2024-09-28 03:12:59 发布

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

我想更新user表的email列,其中id == 3。下面的代码不会更新任何行,甚至不会引发任何错误。问题出在哪里?在

from sqlalchemy import update
@app.route('/testupdate/')
def testupdate():
    stmt = update(user).where(user.id==3).values(email='a@b')
    db.session.commit()
    return 'done'

Tags: 代码fromimportidappsqlalchemyemaildef
1条回答
网友
1楼 · 发布于 2024-09-28 03:12:59

问题是没有向数据库发出SQL。在

    stmt = update(user).where(user.id==3).values(email='a@b')

不实际执行语句,它只是创建它。要真正执行它,必须将它传递给

^{pr2}$

然后承诺。您也可以只使用会话的^{}API:

    db.session.query(user).\
        filter_by(id=3).\
        update({user.email: 'a@b'},
               synchronize_session='evaluate')

请注意,根据会话中是否有受影响的实例并在以后使用它们,您可以选择根本不与False同步。在

相关问题 更多 >

    热门问题