2024-09-28 03:12:59 发布
网友
我想更新user表的email列,其中id == 3。下面的代码不会更新任何行,甚至不会引发任何错误。问题出在哪里?在
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'
问题是没有向数据库发出SQL。在
stmt = update(user).where(user.id==3).values(email='a@b')
不实际执行语句,它只是创建它。要真正执行它,必须将它传递给
然后承诺。您也可以只使用会话的^{}API:
db.session.query(user).\ filter_by(id=3).\ update({user.email: 'a@b'}, synchronize_session='evaluate')
请注意,根据会话中是否有受影响的实例并在以后使用它们,您可以选择根本不与False同步。在
False
问题是没有向数据库发出SQL。在
不实际执行语句,它只是创建它。要真正执行它,必须将它传递给
^{pr2}$然后承诺。您也可以只使用会话的^{} API:
请注意,根据会话中是否有受影响的实例并在以后使用它们,您可以选择根本不与
False
同步。在相关问题 更多 >
编程相关推荐