mysql - DB load CSV into multiple tables -


UPDATE : डेटा के प्रारूप को स्पष्ट करने के लिए एक उदाहरण जोड़ा गया।

इस तरह से स्वरूपित प्रत्येक पंक्ति के साथ सीएसवी को ध्यान में रखते हुए:

  tbl1.col1, tbl1.col2, tbl1.col3, tbl1.col4, tbl1.col5, [tbl2.col1: tbl2.col2] +  

जहां [tbl2.col1: tbl2.col2] + का मतलब है कि इनमें से कोई भी जोड़ दोहराया जा सकता है

ex:

  tbl1.col1, tbl1.col2, tbl1.col3, tbl1.col4, tbl1.col5, tbl2.col1: tbl2.col2, tbl2.col1: tbl2.col2, tbl2.col1: tbl2.col2, tbl2.col1 : Tbl2.col2, tbl2.col1: tbl2.col2, tbl2.col1: tbl2.col2, tbl2.col1: tbl2.col2, tbl2.col1: tbl2.col2  

तालिकाएँ प्रत्येक पंक्ति से एक कुंजी के रूप में उपयोग करने के लिए संबंधित है जो कि ऊपर उल्लिखित किसी भी कॉलम के अतिरिक्त बनाया जाना है।

  1. mysql लोड डेटा इन्फाइल का उपयोग करने का कोई तरीका है डेटा को दो अलग-अलग तालिकाओं में लोड करने के लिए?
  2. यदि नहीं, तो यूनिक्स कमांड लाइन उपकरण इस के लिए सबसे उपयुक्त क्यों होंगे?

नहीं, सीधे नहीं। लोड डेटा केवल एक तालिका या विभाजन तालिका में सम्मिलित कर सकता है।

आप क्या कर सकते हैं डेटा को एक स्टेजिंग तालिका में लोड करें, फिर डालें में व्यक्तिगत कॉलम का चयन करें 2 अंतिम टेबल आपको substring_index की आवश्यकता हो सकती है, अगर आप tbl2 के मानों के लिए अलग-अलग सीमांकक का उपयोग कर रहे हैं लाइन नंबर स्टेजिंग तालिका में एक ऑटो वृद्धिशील कॉलम द्वारा नियंत्रित किया जाता है (सबसे आसान तरीका है ऑटो स्तम्भ को अंतिम रूप से स्टेजिंग तालिका की परिभाषा में करना है)।

प्रारूप बिल्कुल स्पष्ट नहीं है, और सबसे अच्छा किया जाता है W / perl / php / python, लेकिन अगर आप वास्तव में शेल टूल्स का उपयोग करना चाहते हैं:

  cut -d, -f 1-5 फ़ाइल | Awk -F, '{print nr "," $ 0}' & gt; टेबल 1 कट-डी, -f 6- फाइल | Sed 's, \:, \, g' | \ Awk -F, '{i = 1; जबकि (i & lt; = nf) {प्रिंट एनआर "," $ (i) "," $ (i + 1); I + = 2;}} '& gt; तालिका 2  

यह इन सामग्रियों के साथ तालिका 1 और तालिका 2 फाइल बनाता है:

  1, tbl1.col1, tbl1.col2, tbl1.col3, tbl1.col4 , Tbl1.col5 2, tbl1.col1, tbl1.col2, tbl1.col3, tbl1.col4, tbl1.col5 3, tbl1.col1, tbl1.col2, tbl1.col3, tbl1.col4, tbl1.col5  

और

<पूर्व> 1, tbl2.col1, tbl2.col2 1, tbl2.col1, tbl2.col2 2, tbl2.col1, tbl2.col2 2, tbl2.col1 , Tbl2.col2 3, tbl2.col1, tbl2.col2 3, tbl2.col1, tbl2.col2

Comments

Popular posts from this blog

asp.net - Change the driver in the connection string to a data source in VB.Net -

Getting started consuming web services in a Ruby on Rails 3 application -

objective c - iPhone and it's wireless area -