我正在尝试更改SQLAlchemy的ResultProxy.rowcount属性的行为。 配置是mysql + mysqlconnector。 我在create_engine()中设置了connect_args = {'client_flags':[ClientFlag.FOUND_ROWS]}。
问题是它似乎不起作用。 我仍然得到匹配的记录数,而不是UPDATE查询中的AFFECTED。
在SQLAlchemy中设置FOUND_ROWS客户端标志的正确方法是什么?
获取client_flags状态的正确方法是什么?
谢谢,
答案 0 :(得分:0)
我认为反过来了。
以下是设置CLIENT_FOUND_ROWS
标志时所执行的操作(在mysql doc中查找FOUND_ROW)
返回找到的(匹配的)行数,而不是更改的行数。
来自SQLAlchemy doc我们看到他们使用默认:
出于这个原因,SQLAlchemy MySQL方言总是设置constants.CLIENT.FOUND_ROWS标志
所以如果你想在UPDATE查询上记录AFFECTED的记录数,而不是MATCHED则应该删除该标志
简而言之,您使用相同的标志覆盖默认标志。