2010-06-23 6 views
17

Ich weiß, dass es die LOAD DATA INFILE-Anweisung gibt, mit der ich strukturierte Daten in eine Tabelle einfügen kann.Fügen Sie den Inhalt der Datei in die Spalte der MySQL-Tabelle ein

Was mich interessiert, ist, ob es möglich ist, den Inhalt einer Datei in einzelne Spalte einzufügen. So ist etwa so:

INSERT INTO my_table (stamp, what) VALUES (NOW(), LOAD DATA INFILE 'my_file'); 

möglich?

Antwort

31

Ja, es ist möglich. Sie können die LOAD_FILE() Funktion:

CREATE TABLE my_table (stamp datetime, what text); 

INSERT INTO my_table (stamp, what) VALUES (NOW(), LOAD_FILE('/tmp/my_file.txt')); 

Sie werden dafür sorgen, dass die Datei von MySQL lesbar ist, und dass Ihr MySQL-Benutzer hat das FILE Privileg. Dies ist das gleiche Privileg, das für LOAD DATA INFILE erforderlich ist.

+0

Vielen Dank, das ist genau das, was ich brauche. –

+0

Leider scheint LOAD_FILE unter Linux fehlerhaft zu sein. http://bugs.mysql.com/bug.php?id=38403 – ehfeng

+0

Können wir Datei mit globalen Attribut eingeben, wie c:/etwas –

0

bearbeiten: Ich habe dich falsch verstanden, sorry, Daniel Vassallo hat die richtige Antwort. Kann das sowieso nützlich sein?

Ich denke, Sie suchen nach BLOB oder TEXT, siehe docs. Wenn Sie das Datum der Datei in der Datenbank speichern möchten, suchen Sie möglicherweise nach

+0

Ist meine Formulierung der Frage unklar? (d. h. sollte ich es ändern?) –

+0

Nein, nachdem ich Ihre Frage erneut gelesen hatte, verstand ich es perfekt. War nur ein bisschen zu schnell mit der Antwort;) – DrColossos

Verwandte Themen