更新SQLAlchemy中的特定行

时间:2014-03-02 22:24:35

标签: python mysql sql sqlalchemy

我正在使用SQLAlchemy和python,我想更新表中与该查询相等的特定行:

UPDATE User SET name = 'user' WHERE id = '3'

我通过sql炼金术制作了这段代码,但它不起作用:

session.query(User).filter(User.id==3).update({'name': 'user'})

返回了此错误:

InvalidRequestError: Could not evaluate current criteria in Python. Specify 'fetch' or False for the synchronize_session parameter.

我该怎么做?

2 个答案:

答案 0 :(得分:3)

ormically,你不使用update(),你设置属性:

a_user = session.query(User).filter(User.id == 3).one()
a_user.name = "user"
session.commit()

答案 1 :(得分:0)

session.query(User).filter(User.id==3).update({'name':'user'},synchronize_session=False)

这样可行。阅读sqlalchemy文档中的syncrhonize_session