2009-03-31 18 views

risposta

21

Sebbene non sia realmente indicato nei documenti, un oggetto ResultProxy ha anche una proprietà rowcount.

+0

'rowcount' non è in realtà il conteggio delle righe interessate * *. Vedi la mia risposta per i dettagli. –

+0

I documenti includono 'rowcount' in questi giorni: http://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.ResultProxy.rowcount –

5

rowcount è non il numero di righe interessate. È il numero di righe corrispondenti. Vedere che cosa doc dice

Questo attributo restituisce il numero di righe abbinati, che non è necessariamente lo stesso del numero di righe che erano in realtà modificato - un'istruzione UPDATE, ad esempio, può avere senza rete cambia su una data riga se i valori SET dati sono uguali a quelli presenti nella riga già. Tale riga sarebbe stata abbinata ma non modificata. Su backend che caratterizzano entrambi gli stili, come MySQL, rowcount è configurato di default per restituire il conteggio partita in tutti i casi

Così, per entrambe le seguenti scenari rowcount riferirà 1. A causa di Rows matched: 1

  1. una riga cambiato con update dichiarazione.

    Query OK, 1 row affected (0.00 sec) 
    Rows matched: 1 Changed: 1 Warnings: 0 
    
  2. stesso update istruzione viene eseguita.

    Query OK, 0 row affected (0.00 sec) 
    Rows matched: 1 Changed: 0 Warnings: 0 
    
Problemi correlati