Die Stapelverarbeitung ist eine nicht interaktive Möglichkeit, MySQL-Programme auszuführen, und Sie verwenden weiterhin dieselben Befehle wie in MySQL. Die Stapelverarbeitung ist eine nicht interaktive Möglichkeit, MySQL-Programme auszuführen, und Sie verwenden weiterhin dieselben Befehle wie in MySQL.
Um die Stapelverarbeitung zu implementieren, leiten Sie eine Datei an das MySQL-Programm weiter. Zuerst benötigen wir eine Textdatei. Diese Textdatei enthält den gleichen Text wie der Befehl, den wir in MySQL eingegeben haben.
Wenn wir beispielsweise einige Daten einfügen möchten, verwenden Sie eine Datei mit dem folgenden Text (der Dateiname ist New_Data.sql, natürlich können wir ihn auch New_Data.txt oder einen anderen zulässigen Namen nennen, und er muss nicht enden mit dem Suffix sql):
USE Meet_A_Geek;
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Block");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Newton");
INSERT INTO Customers (Customer_ID, Last_Name) VALUES(NULL, "Simmons");
Beachten Sie, dass die obigen Sätze grammatikalisch korrekt sein müssen und jeder Satz mit einem Semikolon enden muss. Der obige USE-Befehl wählt die Datenbank aus und der INSERT-Befehl fügt Daten ein.
Als nächstes müssen wir die obige Datei in die Datenbank importieren. Vor dem Import müssen wir bestätigen, dass die Datenbank bereits ausgeführt wird, dh der mysqld-Prozess (oder Dienst, der unter Windows NT als „Dienst“ und unter Unix als „Prozess“ bezeichnet wird). läuft schon.
Führen Sie dann den folgenden Befehl aus:
bin/mysql –p < /home/mark/New_Data.sql
Geben Sie dann nach Aufforderung das Passwort ein. Wenn die Anweisungen in der obigen Datei keine Fehler enthalten, werden die Daten in die Datenbank importiert.
Verwenden Sie LOAD DATA INFILE in der Befehlszeile, um Daten aus einer Datei in die Datenbank zu importieren:
Jetzt fragen Sie sich vielleicht: „Warum um alles in der Welt tippe ich all diese SQL-Anweisungen in eine Datei und führe sie dann über ein Programm aus?“
Das scheint eine Menge Arbeit zu sein. Nun, wahrscheinlich haben Sie Recht, wenn Sie das denken. Aber was ist, wenn Sie Protokolldatensätze von all diesen Befehlen haben? Das ist großartig. Die meisten Datenbanken erstellen automatisch ein Protokoll der in der Datenbank aufgezeichneten Ereignisse. Die meisten Protokolle enthalten verwendete Original-SQL-Befehle. Wenn Sie daher keine Daten aus Ihrer aktuellen Datenbank in eine neue MySQL-Datenbank exportieren können, können Sie Protokoll und die Stapelverarbeitungsfunktionen von MySQL verwenden, um Ihre Daten schnell und einfach zu importieren. Das erspart Ihnen natürlich die Mühe des Tippens.
DATEN-INDATEI LADEN
Dies ist die letzte Methode, die wir zum Importieren von Daten in eine MySQL-Datenbank vorstellen werden. Dieser Befehl ist mysqlimport sehr ähnlich, diese Methode kann jedoch in der MySQL-Befehlszeile verwendet werden. Dies bedeutet, dass Sie diesen Befehl in allen Programmen verwenden können, die die API verwenden. Mit dieser Methode können Sie die Daten, die Sie importieren möchten, in Ihre Anwendung importieren.
Bevor Sie diesen Befehl verwenden, muss der mysqld-Prozess (Dienst) ausgeführt werden.
Starten Sie die MySQL-Befehlszeile:
bin/mysql –p
Geben Sie nach Aufforderung das Passwort ein. Geben Sie nach erfolgreicher Eingabe der MySQL-Befehlszeile den folgenden Befehl ein:
USE Meet_A_Geek;
LOAD DATA INFILE „/home/mark/data.sql“ INTO TABLE Orders;
Vereinfacht ausgedrückt wird dadurch der Inhalt der Datei data.sql in die Tabelle Orders importiert. Wie das Tool mysqlimport verfügt auch dieser Befehl über einige optionale Parameter. Wenn Sie beispielsweise Daten von Ihrem eigenen Computer in einen Remote-Datenbankserver importieren müssen, können Sie den folgenden Befehl verwenden:
LOAD DATA LOCAL INFILE „C:MyDocsSQL.txt“ INTO TABLE Orders;
Der obige LOCAL-Parameter gibt an, dass es sich bei der Datei um eine lokale Datei handelt und der Server der Server ist, bei dem Sie angemeldet sind. Dadurch entfällt die Notwendigkeit, Dateien per FTP auf den Server hochzuladen, MySQL erledigt das für Sie.
Sie können auch die Priorität der Einfügeanweisung festlegen. Wenn Sie sie als niedrige Priorität (LOW_PRIORITY) markieren möchten, wartet MySQL, bis niemand anderes die Tabelle liest, bevor es Daten einfügt. Sie können die folgenden Befehle verwenden:
LOAD DATA LOW_PRIORITY INFILE „/home/mark/data.sql“ INTO TABLE Orders;
Sie können auch festlegen, ob beim Einfügen von Daten doppelte Schlüsselwerte in Dateien und Tabellen ersetzt oder ignoriert werden sollen. Syntax zum Ersetzen doppelter Schlüsselwerte:
LOAD DATA LOW_PRIORITY INFILE „/home/mark/data.sql“ REPLACE INTO TABLE Orders;
Der obige Satz mag etwas klobig erscheinen, aber er platziert die Schlüsselwörter an einer Stelle, die Ihr Profiler verstehen kann.
Das folgende Optionspaar beschreibt das Dateiaufzeichnungsformat. Diese Optionen sind auch im mysqlimport-Tool verfügbar. Hier sehen sie etwas anders aus. Zunächst muss das Schlüsselwort FIELDS verwendet werden. Wenn dieses Schlüsselwort verwendet wird, hofft der MySQL-Profiler, mindestens eine der folgenden Optionen zu sehen:
BEENDET DURCH Zeichen
ENCLOSED BY Zeichen
ESCAPED BY-Zeichen
Diese Schlüsselwörter und ihre Parameter werden genauso verwendet wie in mysqlimport
TERMINATED BY beschreibt das Trennzeichen des Feldes, standardmäßig das Tabulatorzeichen (t).
ENCLOSED BY beschreibt die Klammerzeichen des Feldes. Schließen Sie beispielsweise jedes Feld in Anführungszeichen ein.
Das von ESCAPED BY beschriebene Escape-Zeichen. Der Standardwert ist Backslash: ).
Im Folgenden wird weiterhin das vorherige Befehlsbeispiel mysqlimport verwendet und die Anweisung LOAD DATA INFILE verwendet, um dieselbe Datei in die Datenbank zu importieren:
LOAD DATA INFILE „/home/mark/Orders.txt“ IN TABLE REPLACE Orders FIELDS TERMINATED BY ',' ENCLOSED BY '"';
Es gibt eine Funktion in der LOAD DATA INFILE-Anweisung, die im mysqlimport-Tool nicht verfügbar ist:
LOAD DATA INFILE kann Dateien anhand bestimmter Spalten in die Datenbank importieren.
Diese Funktion ist sehr wichtig, wenn wir einen Teil der Daten importieren möchten. Wenn wir beispielsweise von einer Access-Datenbank auf eine MySQL-Datenbank aktualisieren, müssen wir einige Spalten (Spalten/Felder/Felder) zur MySQL-Datenbank hinzufügen, um einige zusätzliche Anforderungen zu erfüllen.
Zu diesem Zeitpunkt sind die Daten in unserer Access-Datenbank noch verfügbar, aber da die Felder dieser Daten nicht mehr mit denen in MySQL übereinstimmen, kann das Tool mysqlimport nicht mehr verwendet werden. Dennoch können wir weiterhin LOAD DATA INFILE verwenden. Das folgende Beispiel zeigt, wie Daten in ein bestimmtes Feld importiert werden:
LOAD DATA INFILE „/home/Order.txt“ INTO TABLE Orders(Order_Number, Order_Date, Customer_ID);
Wie Sie sehen, können wir die erforderlichen Felder angeben. Diese angegebenen Felder sind weiterhin in Klammern eingeschlossen und durch Kommas getrennt. Wenn Sie eines davon verpassen, werden Sie von MySQL daran erinnert.