मेरे पास 1-कई रिकॉर्ड हैं, जिन्हें तालिका में दर्ज करने की आवश्यकता है। क्वेरी में ऐसा करने का सबसे अच्छा तरीका क्या है? क्या मुझे सिर्फ एक लूप बनाना चाहिए और प्रति पुनरावृत्ति में एक रिकॉर्ड डालना चाहिए? या कोई बेहतर तरीका है?
मेरे पास 1-कई रिकॉर्ड हैं, जिन्हें तालिका में दर्ज करने की आवश्यकता है। क्वेरी में ऐसा करने का सबसे अच्छा तरीका क्या है? क्या मुझे सिर्फ एक लूप बनाना चाहिए और प्रति पुनरावृत्ति में एक रिकॉर्ड डालना चाहिए? या कोई बेहतर तरीका है?
जवाबों:
से MySQL मैनुअल
वैल्यू सिंटैक्स का उपयोग करने वाले INSERT स्टेटमेंट कई पंक्तियों को सम्मिलित कर सकते हैं। ऐसा करने के लिए, कॉलम मानों की एकाधिक सूचियों को शामिल करें, प्रत्येक कोष्ठक के भीतर संलग्न और अल्पविराम द्वारा अलग किया गया। उदाहरण:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
max_allowed_packet
अधिकांश समय, आप MySQL क्लाइंट में काम नहीं कर रहे हैं और आपको उपयुक्त एपीआई का उपयोग करके एक साथ बैच आवेषण करना चाहिए।
जैसे JDBC में:
connection con.setAutoCommit(false);
PreparedStatement prepStmt = con.prepareStatement("UPDATE DEPT SET MGRNO=? WHERE DEPTNO=?");
prepStmt.setString(1,mgrnum1);
prepStmt.setString(2,deptnum1);
prepStmt.addBatch();
prepStmt.setString(1,mgrnum2);
prepStmt.setString(2,deptnum2);
prepStmt.addBatch();
int [] numUpdates=prepStmt.executeBatch();
Insert into table(col1,col2) select col1,col2 from table_2;
कृपया INSERT स्टेटमेंट पर MySQL प्रलेखन देखें
insert into select from
प्रदर्शन के बारे में कैसे ? क्या यह बल्क इंसर्ट जितना तेज़ है?
लोड डेटा इनफ़िल्ट क्वेरी बहुत बेहतर विकल्प है, लेकिन कुछ सर्वर जैसे गोडैडी इस विकल्प को साझा होस्टिंग पर प्रतिबंधित करते हैं, केवल दो विकल्प बचे हैं, फिर प्रत्येक पुनरावृत्ति या बैच इंसर्ट पर एक रिकॉर्ड डाला जाता है, लेकिन यदि आपकी क्वेरी इससे अधिक है, तो बैच इन्सर्ट में इसके लिमिडेट वर्ण हैं। mysql में सेट किए गए वर्णों की संख्या, फिर आपकी क्वेरी क्रैश हो जाएगी, इसलिए मेरा सुझाव है कि चांस में डेटा डालें बैच डालने के साथ, इससे डेटाबेस के साथ स्थापित कनेक्शन की संख्या कम हो जाएगी। भाग्य के लोग
LOAD DATA LOCAL INFILE '/users/name/txt.file'
mysql आपको एक बार INSERT मैनुअल में कई पंक्तियों को सम्मिलित करने की अनुमति देता है
INSERT
इस मूल का समर्थन करता है !