2010-05-18 17 views
7

estoy tratando de ejecutar un script que elimina un montón de filas en una tabla de MySQL (InnoDB) en lotes, mediante la ejecución del siguiente en un bucle:Herramienta de línea de comandos MySQL: ¿Cómo averiguar el número de filas afectadas por un BORRAR?

mysql --user=MyUser --password=MyPassword MyDatabase < SQL_FILE 

donde SQL_FILE contiene un DELETE FROM ... Limitar el comando X.

Necesito seguir ejecutando este ciclo hasta que no haya más filas coincidentes. Pero a diferencia de ejecutar en el shell mysql, el comando anterior no devuelve el número de filas afectadas. He intentado -v y -t pero ninguno funciona. ¿Cómo puedo saber cuántas filas afectó el script por lotes?

Gracias!

+0

Creo que acabo de encontrar la respuesta: http://stackoverflow.com/questions/1083866/how-to-get-number -f-rows-affected-while-executing-mysql-query-from-bash – ambivalence

Respuesta

13

Puede agregar SELECT ROW_COUNT(); al final de la secuencia de comandos por lotes.

1

Si agrega la opción -vv producirá una salida más detallada, que también contiene información sobre el número de filas afectadas;

MySQL -vs user = MyUser --password = MiContraseña MyDatabase < SQL_FILE

Cuestiones relacionadas