如何获得受SQL Alchemy影响的行数?

时间:2012-10-10 20:09:30

标签: python mysql sqlalchemy pyramid flask-sqlalchemy

如何使用sqlalchemy获取更新语句的受影响行数? (我使用的是mysql和python / pyramid):

from sqlalchemy.engine.base import ResultProxy

@classmethod
def myupdate(cls, id, myvalue):
    DBSession.query(cls).filter(cls.id == id).update({'mycolumn': myvalue})
    if ResultProxy.rowcount == 1:
        return True
    else:
        return False

注意:我看到了this post但是根据the docs:“'rowcount'报告了UPDATE或DELETE语句的WHERE标准匹配的行数。”....其他单词,它不会通过更新或删除语句返回受影响的行数。

1 个答案:

答案 0 :(得分:1)

根据the doc,您可以通过为DBAPI指定正确的选项来覆盖此行为。

我没有准备好测试的mysql,但我认为在配置网址中添加正确的选项(client_flagfound_rows=False,具体取决于使用的api)应该可以解决问题。查看mysqlconnectoroursql的相应来源以获取更多信息。

我希望这足以帮助你。