如何使用mysqlconnector在SQLAlchemy中设置FOUND_ROWS的client_flags以返回受影响的行

时间:2014-01-12 08:41:51

标签: python sqlalchemy mysql-python

我正在尝试更改SQLAlchemy的ResultProxy.rowcount属性的行为。 配置是mysql + mysqlconnector。 我在create_engine()中设置了connect_args = {'client_flags':[ClientFlag.FOUND_ROWS]}。

问题是它似乎不起作用。 我仍然得到匹配的记录数,而不是UPDATE查询中的AFFECTED。

在SQLAlchemy中设置FOUND_ROWS客户端标志的正确方法是什么?

获取client_flags状态的正确方法是什么?

谢谢,

1 个答案:

答案 0 :(得分:0)

我认为反过来了。

以下是设置CLIENT_FOUND_ROWS标志时所执行的操作(在mysql doc中查找FOUND_ROW)

  

返回找到的(匹配的)行数,而不是更改的行数。

来自SQLAlchemy doc我们看到他们使用默认

  

出于这个原因,SQLAlchemy MySQL方言总是设置constants.CLIENT.FOUND_ROWS标志

所以如果你想在UPDATE查询上记录AFFECTED的记录数,而不是MATCHED则应该删除该标志

简而言之,您使用相同的标志覆盖默认标志。