python - query - sqlalchemy relationship
¿Cómo obtener el número de filas afectadas en sqlalchemy? (3)
Aunque no está realmente establecido en los documentos, un objeto ResultProxy
tiene una propiedad de ResultProxy
.
Tengo una pregunta sobre Python y el módulo sqlalchemy. ¿Cuál es el equivalente de cursor.rowcount
en el sqlalchemy Python?
Sin embargo, lo que dice Shiplu es correcto, por supuesto, para responder a la pregunta, en muchos casos puede hacer que las columnas coincidentes sean iguales a las columnas modificadas al incluir la condición de que el valor es diferente en la cláusula WHERE, es decir:
UPDATE table
SET column_to_be_changed = "something different"
WHERE column_to_be_changed != "something different" AND [...your other conditions...]
rowcount
de filas devolverá el número de filas afectadas, ya que es igual al número de filas coincidentes.
rowcount
de filas no es el número de filas afectadas. Es el número de filas coincidentes. Mira lo que dice el docs.sqlalchemy.org/en/latest/core/…
Este atributo devuelve el número de filas que coinciden , que no es necesariamente el mismo que el número de filas que se modificaron realmente. Por ejemplo, una instrucción UPDATE puede no tener un cambio neto en una fila determinada si los valores de SET son los mismos que Los presentes en la fila ya. Tal fila sería igualada pero no modificada. En los backends que presentan ambos estilos, como MySQL, el recuento de
rowcount
se configura de manera predeterminada para devolver el recuento de coincidencias en todos los casos
Por lo tanto, para los dos siguientes escenarios, el rowcount
informará 1
. Debido a Rows matched: 1
una fila cambió con la instrucción de
update
.Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Se ejecuta la misma sentencia de
update
.Query OK, 0 row affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0