[TERMINATED BY '\t'] [OPTIONALLY] ENCLOSED BY "]
[ESCAPED BY '\\' ]]
[LINES TERMINATED BY '\n']
[IGNORE number LINES]
[(col_name,...)]
Der Befehl LOAD DATA INFILE liest Reihen aus einer Textdateiin eine Tabelle mit einer sehr hohen Geschwindigkeit. Wenndas Schlüsselwort LOCAL angegeben wurde, dann wird die Dateivon dem Client Host gelesen. Falls nicht, dann muß sich dieDatei auf dem Server befinden. (LOCAL ist ab Version 3.22.6verfügbar) Viel einfacher ist es jedoch, mit Hilfe von AdministrationswerkzeugenDatenbanken einzulesen oder zu konvertieren.
Diese finden Sie im Kapitel Einsteiger Tutorial LINUX MySQLServer, nebenher gesagt.... Aus Sicherheitsgründen muß, wenneine Textdatei auf dem Server eingelesen wird, diese entwederim Datenbankverzeichnis liegen, oder allgemein lesbar sein.Um also den Befehl LOAD DATA INFILE ausführen zu können, mußman die Datei Privilegien (file privilege) besitzen. Meh hierzuim Kapitel Datei Privilegien.Datenfiles können auch mit Hilfedes mysqlimport Utility eingelesen werden. Es arbeitet identischzu dem Befehl LOAD DATA INFILE auf dem Server. Die LOCAL Option veranlaßt den Server, die Daten vom Client über das
Netzwerk zu laden. Die Option --compress beim Befehl mysqlimport
veranlaßt Client und Server, die Daten vor der Übermittlung
zu komprimieren.
Für das Auffinden der Dateien auf dem Server Host gelten
folgende Regeln: Absolute Pfadnamen können angegeben werden
Bei relativen Pfadnamen gilt als Referenz das Datenverzeichnis
des SQL Dämons Bei der Angabe von ./daten.txt wird vom Datenverzeichnis
des Servers gelesen, bei der Angabe daten.txt allein wird
aus dem Datenbankverzeichnis der aktuellen Datenbank gelesen
Folgendes Statement liest aus dem Datenbankverzeichnis für
db1, nicht db2:
mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table;
LOAD DATA INFILE ist das Gegenstück zu SELECT ... INTO OUTFILE.
Siehe hierzu auch das Kapitel SELECT. Um Daten von einer
Datenbank in eine Datei zu schreiben und wieder einzulesen,
sind die Befehle SELECT ... INTO OUTFILE und LOAD DATA INFILE
zu verwenden. Die Syntax für die Optionen FIELDS und LINES
sind für beide Statements identisch und optional. Der Befehl
FIELDS muß vor dem Befehl LINES stehen.
Zusammen mit dem Ausdruck FIELDS kann optional der Unterausdruck
(TERMINATED BY, ENCOLSED BY und ESCAPED BY verwendet werden.
Zumindest einer dieser Ausdrücke muß angewendet werden.
Wenn der Ausdruck FIELDS nicht angegeben wird,
wird der Befehl so interpretiert:
FIELDS TERMINATED BY '\t' ENCLOSED BY " ESCAPED BY '\\'
Wenn kein LINES Ausdruck verwendet wird, wird
folgender Befehl angenommen:
LINES TERMINATED BY '\n'
Ein Beispiel:
mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt' FIELDS
TERMINATED BY ',' FROM ...
Um eine durch Komma in den Feldern separierte Datei wieder
einzuladen, muß also korrekterweise angegeben werden:
mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS
TERMINATED BY ',';
|
|