如何获取sqlalchemy中受影响的行数?

hon*_*zas 29 python sqlalchemy

我有一个关于Python和sqlalchemy模块的问题.cursor.rowcountsqlalchemy Python中的等价物是什么?

DNS*_*DNS 28

虽然文档中没有真正说明,但ResultProxy对象确实也有rowcount属性.

  • 实际上,“ rowcount”并不是“受影响的行”的计数。详见我的答案。 (2认同)

Shi*_*dim 10

rowcount不是受影响的行数.它是匹配行的数量.看看文档说的是什么

此属性返回匹配的行数,这不一定与实际修改的行数相同- 例如,如果给定的SET值与给定的行相同,则UPDATE语句可能在给定行上没有净更改那些已经存在的人.这样的行将匹配但不会被修改.在具有两种样式(例如MySQL)的后端上,rowcount默认情况下配置为在所有情况下返回匹配计数

因此,对于以下两种情况rowcount都会报告1.因为Rows matched: 1

  1. 一行随update声明而改变.

    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    Run Code Online (Sandbox Code Playgroud)
  2. update执行相同的声明.

    Query OK, 0 row affected (0.00 sec)
    Rows matched: 1  Changed: 0  Warnings: 0
    
    Run Code Online (Sandbox Code Playgroud)

  • 那么,OP的问题的答案是什么? (2认同)
  • 尽管这种有用的见解澄清了一个误解,但它并不能为该问题提供有用的答案...如果没有答案,则还应指定它。谢谢 (2认同)