2009-03-31 31 views

Trả lời

21

Mặc dù nó không thực sự được ghi trong tài liệu, một đối tượng ResultProxy cũng có thuộc tính rowcount.

+0

'rowcount' không thực sự là số lượng * hàng bị ảnh hưởng *. Xem câu trả lời của tôi để biết chi tiết. –

+0

Các tài liệu bao gồm 'rowcount' những ngày này: http://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.ResultProxy.rowcount –

5

rowcountkhông số hàng bị ảnh hưởng. Số lượng các hàng phù hợp. Xem những gì doc nói

Thuộc tính này trả về số hàng phù hợp, mà không nhất thiết phải giống như số hàng đó đã thực sự sửa đổi - một câu lệnh UPDATE, ví dụ, có thể không có net thay đổi trên một hàng nhất định nếu các giá trị SET được cung cấp giống với các giá trị hiện có trong hàng đã có. Một hàng như vậy sẽ được khớp nhưng không được sửa đổi. Trên backends có tính năng cả hai phong cách, chẳng hạn như MySQL, rowcount được cấu hình theo mặc định để trả lại số trận đấu trong mọi trường hợp

Vì vậy, cho cả hai kịch bản sau đây rowcount sẽ báo cáo 1. Bởi vì Rows matched: 1

  1. một hàng thay đổi với tuyên bố update.

    Query OK, 1 row affected (0.00 sec) 
    Rows matched: 1 Changed: 1 Warnings: 0 
    
  2. tuyên bố tương tự update được thực thi.

    Query OK, 0 row affected (0.00 sec) 
    Rows matched: 1 Changed: 0 Warnings: 0 
    
Các vấn đề liên quan