In obigen Abschnitten haben Sie mysql interaktiv zur Eingabe von Abfragen und zur Anzeige der Ergebnisse verwendet. Sie können mysql aber auch im Stapelbetrieb (Batch-Modus) ausführen. Zu diesem Zweck legen Sie die gewünschten Befehle in einer Datei ab und weisen mysql dann an, diese Datei auszulesen und die Befehle zu verarbeiten:
shell> mysql < batch-file
Wenn Sie mysql unter Windows ausführen und gewisse Sonderzeichen in der Datei Probleme verursachen, dann können Sie Folgendes tun:
C:\> mysql -e "source batch-file
"
Müssen Sie die Verbindungsparameter auf der Befehlszeile angeben, dann könnte der Befehl so aussehen:
shell>mysql -h
Enter password:host
-uuser
-p <batch-file
********
Wenn Sie mysql auf diese Weise verwenden, erstellen Sie eine Skriptdatei und führen das Skript dann aus.
Soll das Skript auch dann vollständig abgearbeitet werden, wenn
enthaltene Anweisungen Fehler erzeugen, dann sollten Sie die
Befehlszeilenoption --force
verwenden.
Warum sollte man Skripten verwenden? Dafür gibt es ein paar gute Gründe:
Führen Sie eine Abfrage häufiger aus (beispielsweise einmal in der Woche), dann können Sie ein Skript erstellen und sich so die Tipparbeit sparen, die bei jeder Neueingabe der Abfrage anfallen würde.
Sie können neue Abfragen aus bereits vorhandenen ähnlichen erstellen, indem Sie Skriptdateien kopieren und bearbeiten.
Der Stapelbetrieb kann auch nützlich sein, wenn Sie eine Abfrage entwickeln; dies gilt insbesondere für mehrzeilige Befehle oder aus mehreren Anweisungen bestehende Befehlsabfolgen. Wenn Sie einen Fehler machen, brauchen Sie nicht alles neu einzugeben. Beheben Sie den Fehler einfach in Ihrem Skript und weisen Sie mysql dann an, es erneut auszuführen.
Wenn Ihre Abfrage eine umfangreiche Ausgabe erzeugt, dann können Sie diese seitenweise anzeigen lassen, statt sie am oberen Bildschirmrand verschwinden zu sehen:
shell> mysql < batch-file
| more
Zur weiteren Verarbeitung können Sie die Ausgabe auch in eine Datei leiten:
shell> mysql < batch-file
> mysql.out
Sie können Ihr Skript auch an andere Benutzer weitergeben, damit diese ebenfalls die entsprechenden Befehle ausführen können.
Manche Situationen erlauben keine interaktive Vorgehensweise. Dies ist etwa der Fall, wenn eine Abfrage aus einem cron-Job heraus erfolgt. In diesem Fall müssen Sie den Stapelbetrieb verwenden.
Wenn Sie mysql im Stapelbetrieb verwenden, ist
das Standardausgabeformat anders (genauer gesagt, knapper) als im
interaktiven Modus. Die Ausgabe von SELECT DISTINCT
gattung FROM haustier
etwa sieht wie folgt aus, wenn
mysql interaktiv läuft:
+----------+ | gattung | +----------+ | Vogel | | Katze | | Hund | | Hamster | | Schlange | +----------+
Im Stapelbetrieb hingegen sieht die Ausgabe so aus:
gattung Vogel Katze Hund Hamster Schlange
Wenn Sie das interaktive Ausgabeformat auch im Stapelbetrieb
wünschen, verwenden Sie zum Aufruf mysql -t
.
Damit die Ausgabe der ausgeführten Befehle angezeigt wird,
verwenden Sie mysql -vvv
.
Sie können auch Skripten an der
mysql-Eingabeaufforderung verwenden. Hierzu
dient der Befehl source
bzw.
\.
:
mysql>source filename;
mysql>\. filename
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.