2009-08-05 9 views
13

मैं के लिए पाइथन से लोड डेटा स्थानीय INFILE कमांड निष्पादित करने के लिए वाक्यविन्यास परिभाषा, उदाहरण, नमूना कोड, विकी इत्यादि की तलाश में हूं।पाइथन में MySQL लोड डेटा स्थानीय INFILE उदाहरण?

मेरा मानना ​​है कि मैं mysqlimport का भी उपयोग कर सकता हूं, अगर यह उपलब्ध है, तो कोई भी प्रतिक्रिया (और कोड स्निपेट) जिस पर बेहतर मार्ग है, स्वागत है। एक Google खोज वर्तमान जानकारी

किसी भी मामले में लक्ष्य समान है: एक ज्ञात नामकरण सम्मेलन & दिनांक संरचना, एक ही MySQL तालिका में स्वचालित रूप से सैकड़ों फ़ाइलों को लोड करना स्वचालित रूप से लोड नहीं हो रहा है।

connection = MySQLdb.Connect(host='**', user='**', passwd='**', db='**') 
cursor = connection.cursor() 
query = "LOAD DATA INFILE '/path/to/my/file' INTO TABLE sometable FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\\'" 
cursor.execute(query) 
connection.commit() 

अपनी आवश्यकताओं के लिए मेजबान/उपयोगकर्ता/पासवर्ड/के रूप में उपयुक्त डाटाबेस की जगह:

डेविड

+0

आप किसी विशेष पुस्तकालय का उपयोग कर रहे, mysql-अजगर या SQLAlchemy की तरह? – dalloliogm

+0

मैं कुछ भी उपयोग कर सकते हैं। अभी, मेरे पास केवल स्क्रिप्ट में MySQLdb आयात करें। –

उत्तर

22

ठीक है, अजगर का उपयोग MySQLdb, मैं इस का उपयोग करें। यह MySQL दस्तावेज़ here पर आधारित है, सटीक लोड डेटा INFILE कथन आपकी विशिष्ट आवश्यकताओं आदि पर निर्भर करेगा (नोट किए गए फ़ील्ड को नोट करें, अनन्य करके, और बयानों द्वारा छोड़ा गया फ़ाइल उस प्रकार के प्रकार के लिए विशिष्ट होगा जिसमें आप पढ़ने की कोशिश कर रहे हैं)।

+0

मेरे मामले में मैं केवल अंत में प्रतिबद्ध() को याद कर रहा था। लोड डेटा के बाद यह आवश्यक है या नहीं तो लेनदेन खो जाता है। –

+0

मेरी इच्छा है कि मैं 'connection.commit()' के लिए दो बार उखाड़ फेंक सकता हूं जो कई स्थानों पर –

+0

नहीं दिखाया गया है। ज्यादातर स्थानों में, 'प्रतिबद्ध' चीज़ का उल्लेख नहीं किया जाता है, जिसके कारण यह काम नहीं करता है। – SexyBeast

0

तुम भी आपकी क्वेरी के बाद निम्नलिखित लाइनों को जोड़कर आयात के लिए परिणाम प्राप्त कर सकते हैं:

results = connection.info() 
संबंधित मुद्दे