2010-06-23 14 views
17

So che c'è l'istruzione LOAD DATA INFILE, che mi consente di INSERIRE i dati strutturati in una tabella.Inserire il contenuto del file nella colonna della tabella MySQL

Quello che mi incuriosisce è se è possibile INSERIRE i contenuti di un file in una singola colonna. Quindi, è qualcosa del genere:

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

possibile?

risposta

31

Sì, è possibile. È possibile utilizzare la funzione LOAD_FILE():

CREATE TABLE my_table (stamp datetime, what text); 

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

Dovrete fare in modo che il file è leggibile da MySQL, e che il vostro utente MySQL ha il privilegio FILE. Questo è lo stesso privilegio richiesto per LOAD DATA INFILE.

+0

Grazie, questo è esattamente ciò di cui ho bisogno. –

+0

Sfortunatamente, LOAD_FILE sembra essere pieno di bug su Linux. http://bugs.mysql.com/bug.php?id=38403 – ehfeng

+0

Possiamo inserire il file usando l'attributo globale, come c:/qualcosa –

0

modifica: ho capito male, mi dispiace, Daniel Vassallo ha la risposta giusta. Può essere comunque utile

Penso che stiate cercando BLOB o TEXT, vedere docs. Se si desidera archiviare la data del file all'interno del database, questi sono ciò che si sta cercando

+0

La mia formulazione della domanda non è chiara? (dovrei modificarlo?) –

+0

No, dopo aver riletto la tua domanda, l'ho capito perfettamente. Era solo un po 'troppo veloce con la risposta;) – DrColossos

Problemi correlati