2010-06-23 11 views
17

मुझे पता है कि LOAD DATA INFILE कथन है, जो मुझे एक तालिका में संरचित डेटा को INSERT करने की अनुमति देता है।MySQL तालिका के कॉलम में फ़ाइल सामग्री डालें

मैं किस बारे में उत्सुक हूं, यह है कि फ़ाइल की सामग्री को एकल कॉलम में शामिल करना संभव है या नहीं। तो, ऐसा कुछ है:

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

संभव है?

उत्तर

31

हाँ यह संभव है। आप LOAD_FILE() फ़ंक्शन का उपयोग कर सकते हैं:

CREATE TABLE my_table (stamp datetime, what text); 

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

आप सुनिश्चित करें कि फ़ाइल MySQL द्वारा पढ़े जाने योग्य बनाने के लिए होगा, और अपने MySQL उपयोगकर्ता FILE विशेषाधिकार है। LOAD DATA INFILE के लिए यह वही विशेषाधिकार आवश्यक है।

+0

देख रहे हैं, धन्यवाद, यह वही है जो मुझे चाहिए। –

+0

दुर्भाग्यवश, LOAD_FILE लिनक्स पर टूटी हुई छोटी गाड़ी लगती है। http://bugs.mysql.com/bug.php?id=38403 – ehfeng

+0

क्या हम वैश्विक विशेषता का उपयोग कर फ़ाइल इनपुट कर सकते हैं, जैसे c:/कुछ –

0

संपादित करें: मैं आपको गलत समझ गया, माफ करना, डैनियल वासलो के पास सही जवाब है। यह वैसे भी उपयोगी है

मुझे लगता है कि आप BLOB या TEXT देख रहे हैं, docs देखें। यदि आप डेटबेस के अंदर फ़ाइल की तारीख को स्टोर करना चाहते हैं, तो ये संभवतः आप

+0

क्या मेरा प्रश्नपत्र अस्पष्ट है? (यानी क्या मुझे इसे संशोधित करना चाहिए?) –

+0

नहीं, अपने प्रश्न को फिर से पढ़ने के बाद, मैं इसे पूरी तरह समझ गया। जवाब के साथ बस थोड़ा जल्दी था;) – DrColossos

संबंधित मुद्दे