Syntax
Mit LOAD DATA INFILE große Datenmengen in die Datenbank laden
Betrachten Sie das folgende Beispiel unter der Annahme, dass Sie eine ‚;‘-begrenzte CSV in Ihre Datenbank laden wollen.
1;max;male;manager;12-7-19852;jack;male;executive;21-8-1990...1000000;marta;female;accountant;15-6-1992
Erstellen Sie die Tabelle zum Einfügen.
Verwenden Sie die folgende Abfrage, um die Werte in diese Tabelle einzufügen.
Betrachten Sie den Fall, dass das Datumsformat nicht dem Standard entspricht.
1;max;male;manager;17-Jan-19852;jack;male;executive;01-Feb-1992...1000000;marta;female;accountant;25-Apr-1993
In diesem Fall können Sie das Format der dob
Spalte vor dem Einfügen wie folgt ändern.
Dieses Beispiel für LOAD DATA INFILE zeigt nicht alle verfügbaren Funktionen.
Weitere Hinweise zu LOAD DATA INFILE finden Sie hier.
Importieren einer CSV-Datei in eine MySQL-Tabelle
Der folgende Befehl importiert CSV-Dateien in eine MySQL-Tabelle mit den gleichen Spalten unter Berücksichtigung der CSV-Quoting- und Escaping-Regeln.
Daten mit Duplikaten laden
Wenn Sie den Befehl LOAD DATA INFILE
verwenden, um eine Tabelle mit vorhandenen Daten zu füllen, werden Sie oft feststellen, dass der Import aufgrund von Duplikaten fehlschlägt. Es gibt mehrere Möglichkeiten, dieses Problem zu umgehen.
Wenn diese Option in Ihrem Server aktiviert wurde, kann sie dazu verwendet werden, eine Datei zu laden, die auf dem Client-Computer und nicht auf dem Server existiert. Ein Nebeneffekt ist, dass doppelte Zeilen für eindeutige Werte ignoriert werden.
LOAD DATA LOCAL INFILE 'path of the file/file_name.txt' INTO TABLE employee
Load DATA INFILE ‚fname‘ REPLACE
Wenn das Schlüsselwort replace verwendet wird, werden doppelte eindeutige oder primäre Schlüssel dazu führen, dass die vorhandene Zeile durch eine neue ersetzt wird
LOAD DATA INFILE 'path of the file/file_name.txt' REPLACE INTO TABLE employee
LOAD DATA INFILE ‚fname‘ IGNORE
Das Gegenteil von REPLACE
, werden bestehende Zeilen beibehalten und neue ignoriert. Dieses Verhalten ist ähnlich wie das oben beschriebene LOCAL
. Allerdings muss die Datei nicht auf dem Client-Computer existieren.
LOAD DATA INFILE 'path of the file/file_name.txt' IGNORE INTO TABLE employee
Laden über Zwischentabelle
Manchmal ist das Ignorieren oder Ersetzen aller Duplikate nicht die ideale Option. Möglicherweise müssen Sie Entscheidungen auf der Grundlage des Inhalts anderer Spalten treffen. In diesem Fall ist die beste Option, in eine Zwischentabelle zu laden und von dort zu übertragen.
INSERT INTO employee SELECT * FROM intermediary WHERE ...
Import / Export
Import
SELECT a,b,c INTO OUTFILE 'result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table;
Export
LOAD DATA INFILE 'result.txt' INTO TABLE table;