2011-02-11 35 views
6

क्या MySQLBulkLoader लेनदेन के साथ उपयोग किया जा सकता है? मुझे लोडर के उदाहरण के लिए लेनदेन को स्पष्ट रूप से संलग्न करने का कोई तरीका नहीं दिखता है। क्या कोई और तरीका है?क्या MySQLBulkLoader लेनदेन के साथ उपयोग किया जा सकता है?

उत्तर

1

के रूप में MySQL प्रलेखन टीम के सदस्य द्वारा here ने कहा:

It's not atomic. The records loaded prior to the error will be in the 
table. 

काम arround समर्पित तालिका में डेटा आयात करना और फिर INSERT INTO ... SELECT ... जो परमाणु आपरेशन किया जाएगा अमल है। विशाल डेटा सेट पर यह लंबे लेनदेन के कारण संभावित समस्या है।

+0

कृपया ध्यान दें कि यह MyISAM तालिकाओं पर लागू होता है, जो लेनदेन का समर्थन नहीं करता है। इनो डीडी कम से कम लोड डेटा के रूप में लेनदेन के रूप में व्यवहार करता है। – nos

1

MySQL manual इंगित करता है कि MySQLBulkLoader 'लोड डेटा इन्फाइल' का एक रैपर है। आप ध्यान न दें इनपुट पंक्तियों को एक अनूठा कुंजी मान पर कोई मौजूदा पंक्ति नकल को छोड़ दिया जाता है निर्दिष्ट करते हैं,

: 'डेटा लोड INFILE' प्रलेखन देखते हुए मैं इस पैरा देखा। यदि आप या तो विकल्प निर्दिष्ट नहीं करते हैं, तो व्यवहार इस पर निर्भर करता है कि स्थानीय कीवर्ड निर्दिष्ट है या नहीं। LOCAL के बिना, एक त्रुटि तब होती है जब डुप्लिकेट कुंजी मान पाया जाता है, और शेष टेक्स्ट फ़ाइल को अनदेखा किया जाता है। LOCAL के साथ, डिफ़ॉल्ट व्यवहार वैसा ही है जैसे IGNORE निर्दिष्ट है; ऐसा इसलिए है क्योंकि सर्वर ऑपरेशन के बीच में फ़ाइल के संचरण को रोकने का कोई तरीका नहीं है।

मुझे लेनदेन पर कोई चर्चा नहीं मिली लेकिन उपर्युक्त पैराग्राफ इंगित करेगा कि लेनदेन संभव नहीं है।

एक आयात तालिका में डेटा आयात करने के लिए एक कामकाज होगा और फिर वांछित तालिका में लेनदेन का उपयोग कर डेटा को संसाधित करने के लिए एक अलग संग्रहीत प्रक्रिया का उपयोग करें।

तो जव

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

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