2010-05-18 2 views
7

Ich versuche, ein Skript auszuführen, das durch Ausführen des folgend in einer Schleife in den Reihen, eine Reihe von Zeilen in einer MySQL (InnoDB) Tabelle löscht:MySQL-Kommandozeilen-Tool: Wie finde ich heraus, wie viele Zeilen von DELETE betroffen sind?

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

wo SQL_FILE a enthält DELETE FROM ... LIMIT X-Befehl.

Ich muss diese Schleife weiter ausführen, bis es keine passenden Zeilen mehr gibt. Im Gegensatz zur Ausführung in der mysql-Shell gibt der obige Befehl jedoch nicht die Anzahl der betroffenen Zeilen zurück. Ich habe -v und -t versucht, aber keiner funktioniert. Wie kann ich herausfinden, wie viele Zeilen das Batch-Skript betroffen hat?

Danke!

+0

Ich glaube, ich habe gerade die Antwort: http://stackoverflow.com/questions/1083866/how-to-get-number -of-rows-betroffen-während-ausführen-mysql-query-from-bash – ambivalence

Antwort

13

Sie können SELECT ROW_COUNT(); am Ende des Batch-Skripts hinzufügen.

1

Wenn Sie die Option -vv hinzufügen, wird eine ausführlichere Ausgabe erzeugt, die auch eine Information über die Anzahl betroffener Zeilen enthält.

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

Verwandte Themen