Zunächst möchte ich darauf hinweisen, dass wir die MySQL-Konsole jederzeit im Batch-Modus starten können. Damit können SQL-Befehle als Batch verarbeitet werden. Auch dazu ein Beispiel:
mysql -u up -p <do.sql
Das Passwort wird ganz normal abgefragt, doch danach gelangen wir nicht auf die Konsole, sondern der Inhalt der Datei 'do.sql' wird an die MySQL-Konsole weitergereicht. Nach dem Durcharbeiten dieser gelangen wir zurück zum Betriebssystem.
Falls wir eine ANSI-Datei importieren möchten, so können wir das Kommando 'load infile ... into table ...' verwenden. Da wir etwas faul sind, importieren wir ganz einfach die zuvor exportierte Datei wieder:
mysql> load data infile '/home/up/mysql/export.tb' -> into table akten; ERROR 1062: Duplicate entry '3' for key 1
Leider gibt es auch hier ein Problem. Die Tabelle 'akten' enthält ein Schlüsselfeld, das automatisch ausgefüllt wird (primary key sowie auto_increment). Logischerweise hat die zuvor exportiere Datei natürlich jene Schlüssel, die wir auch in der Tabelle haben. So gesehen darf die Fehlermeldung nicht mehr erstaunen, MySQL sagt uns ganz einfach, die Nummer drei gibt es schon. In diesem Beispiel sind wir sicher dankbar für den Hinweis, denn duplizierte Datenbestände sind definitiv keine gute Sache. Es ist aber durchaus denkbar, dass es ungewollte Konflikte gibt, wenn wir mehrere Importvorgänge aus verschiedenen Quellen durchführen. Vielleicht hilft in einem solchen Fall die folgende Variante:
mysql> load data infile '/home/up/mysql/export.tb' -> into table akten (Titel,Datum,Seiten); Query OK, 2 rows affected (0.00 sec) Records: 2 Deleted: 0 Skipped: 0 Warnings: 2
Nun wird die Datei eingelesen, allerdings funktioniert auch das nur, weil wir auf die Felder 'ID' sowie 'DatumErfasst' verzichten. Alles in allem ist der Export und Import mit Bordmitteln nicht ganz trivial. Wer es einfacher haben möchte, der möge ein Dritt-Tool bzw. ein eigenes Skript herbeiziehen.