2010-05-18 4 views
7

Je suis en train d'exécuter un script qui supprime un tas de lignes dans une table MySQL (InnoDB) en lots, en exécutant la commande suivante dans une boucle:Outil de ligne de commande MySQL: Comment trouver le nombre de lignes affectées par un DELETE?

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

où SQL_FILE contient une SUPPRIMER DE ... Commande LIMIT X

Je dois continuer d'exécuter cette boucle jusqu'à ce qu'il n'y ait plus de lignes correspondantes. Mais contrairement à l'exécution dans le shell mysql, la commande ci-dessus ne retourne pas le nombre de lignes affectées. J'ai essayé -v et -t mais aucun ne fonctionne. Comment puis-je connaître le nombre de lignes affectées par le script batch?

Merci!

+0

Je pense que je viens de trouver la réponse: http://stackoverflow.com/questions/1083866/how-to-get-number -of-rows-affected-while-exécution-mysql-query-from-bash – ambivalence

Répondre

13

Vous pouvez ajouter SELECT ROW_COUNT(); à la fin du script de traitement par lots.

1

Si vous ajoutez l'option -vv, cela produira une sortie plus verbeuse, qui contiendra également des informations sur le nombre de lignes affectées;

mysql -vv --user = MyUser --password = MonMotdePasse MaBase < SQL_FILE

Questions connexes