Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या mysql में बल्क कॉपी करना संभव है?

आप एकल SQL कथन का उपयोग करके कई पंक्तियाँ सम्मिलित कर सकते हैं जैसे:

INSERT INTO myTable (col1, col2, col3) VALUES ('myval1', 'myval2', 'myval3'), ('myotherval1', 'myotherval2', 'myotherval3'), ('anotherval1', 'anotherval2', 'anotherval3');

अपडेट करें:

मार्कआर अपनी टिप्पणी में सही है - यदि आप किसी उपयोगकर्ता से डेटा एकत्र कर रहे हैं, या आप जानकारी संकलित कर रहे हैं, तो आप क्वेरी को गतिशील रूप से कुछ इस तरह बना सकते हैं:

StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("INSERT INTO myTable (col1, col2, col3) VALUES ");
for(int i=0;i<myDataCollection.Count;i++) {
  stringBuilder.Append("(" + myDataCollection[i].Col1 + ", " + myDataCollection[i].Col2 + ", " + myDataCollection[i].Col3 + ")");
  if (i<myDataCollection.Count-1) {
    stringBuilder.Append(", ");
  } else {
    stringBuilder.Append(";");
  }
}

string insertStatement = stringBuilder.ToString();

ध्यान देने योग्य दो महत्वपूर्ण बिंदु:

  1. यदि आप किसी उपयोगकर्ता से इनपुट स्वीकार कर रहे हैं, तो यह बहुत महत्वपूर्ण है सभी उपयोगकर्ता इनपुट को साफ करने के लिए, अन्यथा दुर्भावनापूर्ण उपयोगकर्ता आपके पूरे डेटाबेस को संशोधित/हटा/छोड़ सकते हैं। अधिक जानकारी के लिए, गूगल "एसक्यूएल इंजेक्शन।"
  2. मैं स्ट्रिंगबिल्डर वर्ग का उपयोग कर रहा हूं, बजाय एक स्ट्रिंग आदिम और बस संलग्न करने के (यानी। स्ट्रिंग एस ="इन्सर्ट ..."; एस + ="ब्ला ब्ला ब्लाह") क्योंकि यह स्ट्रिंगबिल्डर संलग्न करने में तेज है, क्योंकि इसे एक सरणी के रूप में नहीं माना जाता है, और इसलिए जब आप इसे जोड़ते हैं तो इसे स्वयं का आकार बदलने की आवश्यकता नहीं होती है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:प्रतिदिन अलग-अलग पंक्तियों की गणना करें

  2. डेटाबेस टेबल्स, अधिक बेहतर?

  3. 'क्लॉज वाले' में अज्ञात कॉलम

  4. उसी क्वेरी में चुनें और अपडेट करें

  5. Sql डेटा को .csv में निर्यात करें और क्वेरी के आधार पर प्रति तालिका अलग .csv फ़ाइलें जेनरेट करें