MySQL - डेटा मौजूद नहीं होने पर ही एक नई पंक्ति कैसे सम्मिलित करें

Mysql Deta Maujuda Nahim Hone Para Hi Eka Na I Pankti Kaise Sam Milita Karem



डेटाबेस में डेटा स्टोर करने के लिए MySQL एक प्रसिद्ध ओपन-सोर्स RDBMS है। अपने डेटाबेस के टेबल में डेटा डालना एक सामान्य कार्य है। कभी-कभी, उपयोगकर्ता अतिरेक को समाप्त करने के लिए डुप्लिकेट डेटा सम्मिलित नहीं करना चाहते हैं। MySQL उपयोगकर्ताओं को डेटा डालने की अनुमति केवल तभी देता है जब समान डेटा पहले से मौजूद न हो।

यह पोस्ट केवल एक नई पंक्ति डालने पर चर्चा करेगी यदि डेटा पहले से ही MySQL तालिका में मौजूद नहीं है। इस पोस्ट को शुरू करने से पहले, सुनिश्चित करें कि आप अपने MySQL स्थानीय सर्वर में लॉग इन हैं और आपने एक डेटाबेस चुना है जहाँ आप काम करना चाहते हैं।

'INSERT IGNORE' कथन का उपयोग करके डेटा मौजूद न होने पर ही एक नई पंक्ति डालें

ठीक है, शीर्षक में प्रश्न का उत्तर बहुत सरल और सीधा है। बस 'का प्रयोग करें डालना 'कीवर्ड' के साथ अनदेखा करना ”कीवर्ड। यह सुनिश्चित करेगा कि नया डेटा या सम्मिलित क्वेरी केवल तभी निष्पादित की जाती है जब MySQL में डेटा की कोई पिछली प्रविष्टि नहीं मिलती है। इसका संक्षिप्त अवलोकन प्राप्त करने के लिए, निम्नलिखित सिंटैक्स पर एक नज़र डालें:







डालना अनदेखा करना में [ मेज - नाम ] ( [ स्तम्भ 1 - नाम ] , [ कॉलम 2 - नाम ] , [ स्तम्भ 3 - नाम ] ) मान ( [ मान 1 ] , [ मान 2 ] , [ value3 ] ) ;

आइए एक उदाहरण देखें यदि उपयोगकर्ता एक पंक्ति मान दर्ज करना चाहता है ' 1 ”, “ जॉन ' और ' हरिणी ' में ' ग्राहक 'स्तंभों के लिए तालिका' पहचान ,' ' पहला नाम ' और ' उपनाम ' क्रमश। यदि इन मानों वाली कोई पंक्ति पहले से मौजूद नहीं है, तो इन मानों को सम्मिलित करने के लिए इस क्वेरी को चलाएँ:



चुनना * से ग्राहक;
डालना अनदेखा करना में ग्राहक ( पहचान , पहला नाम , उपनाम ) मान ( 1 , 'जॉन' , 'डो' ) ;

आउटपुट में क्वेरी को निष्पादित करने से पहले और बाद में तालिका के डेटा को प्रदर्शित करने वाली दो तालिकाएँ होती हैं। आप देख सकते हैं कि तालिका में कुछ भी नहीं बदल रहा है क्योंकि पंक्ति पहले से मौजूद है इसलिए MySQL ने त्रुटि प्रदर्शित किए बिना सम्मिलन प्रक्रिया को सफलतापूर्वक अनदेखा कर दिया है:







'व्हेयर नॉट एक्सिस्ट्स' क्लॉज का उपयोग करके केवल तभी एक नई पंक्ति डालें जब डेटा मौजूद नहीं है

MySQL में, ' कहाँ मौजूद नहीं 'उपवाक्य पंक्तियों के सम्मिलन को रोकता है यदि वे तालिका में पहले से मौजूद हैं जब इसका उपयोग' में किया जाता है में सम्मिलित करें एक स्थिति को परिभाषित करने के लिए एक सबक्वायरी के साथ बयान। जब इस खंड का उपयोग सबक्वायरी के साथ किया जाता है ' (चुनें * से [तालिका-नाम] [स्तंभ-नाम] = [अभिव्यक्ति]); ” जाँचता है कि क्या तालिका में कोई पंक्ति मौजूद है जो शर्त को पूरा करती है। यदि कोई पंक्ति मौजूद है, तो ' जहां मौजूद नहीं है 'खंड एक गलत मान लौटाएगा, और' चुनना ” कथन किसी पंक्ति को वापस नहीं करेगा। नतीजतन, पंक्ति को तालिका में नहीं डाला जाएगा। सिंटैक्स नीचे दिया गया है:

डालना में [ मेज - नाम ] ( [ स्तम्भ 1 - नाम ] , [ कॉलम 2 - नाम ] , [ स्तम्भ 3 - नाम ] )
चुनना [ मान 1 ] , [ मान 2 ] , [ value3 ]
कहाँ नहीं मौजूद ( चुनना * से [ मेज - नाम ] [ कॉलम - नाम ] = [ अभिव्यक्ति ] ) ;

आइए एक उदाहरण देखें यदि उपयोगकर्ता कर्मचारी तालिका में एक पंक्ति सम्मिलित करना चाहता है जिसमें मान ' 1 ”, “ अमेरिकन ' और ' हेनरीट 'स्तंभों में' पहचान ”, “ कंपनी का नाम ' और ' संपर्क नाम ' क्रमश। लेकिन केवल अगर एक आईडी के साथ एक पंक्ति ' 1 ” तालिका में नहीं मिला है या यह मौजूद नहीं है। उस विशेष मामले में, क्वेरी बन जाएगी:



चुनना * से कर्मचारी;

डालना में कर्मचारी ( पहचान , कंपनी का नाम , संपर्क नाम )
चुनना 1 , 'अमेरिकन' , 'हेनरीट'
कहाँ नहीं मौजूद ( चुनना * से कर्मचारी कहाँ पहचान = 1 ) ;

आउटपुट एक नई पंक्ति प्रदर्शित करता है जिसे 'के साथ पंक्ति के रूप में सम्मिलित नहीं किया गया है' पहचान ' के बराबर ' 1 'पहले से मौजूद है।

'ऑन डिप्लिकेट की अपडेट' क्लॉज का उपयोग करके डेटा मौजूद न होने पर ही नई पंक्ति डालें

ठीक है, दूसरा तरीका 'का उपयोग करना है डुप्लीकेट कुंजी अद्यतन पर MySQL में क्लॉज। जैसा कि इस खंड का उपयोग 'INSERT INTO' क्वेरी के साथ 'if-else' निष्पादन के लिए किया जाएगा। तो इसका मतलब यह है कि तालिका के अंदर का डेटा केवल तभी अपडेट किया जाएगा जब वह अद्वितीय होगा। अन्यथा कोई परिवर्तन नहीं होगा। इसके लिए सामान्य सिंटैक्स इस प्रकार है:

डालना में [ मेज - नाम ] ( [ स्तम्भ 1 - नाम ] , [ कॉलम 2 - नाम ] , [ स्तम्भ 3 - नाम ] ) मान ( [ मान 1 ] , [ मान 2 ] , [ value3 ] )
पर डुप्लीकेट चाबी अद्यतन [ स्तम्भ 1 - नाम ] = [ स्तम्भ 1 - नाम ] ;

आइए एक उदाहरण देखें, 'में मान सम्मिलित करने के लिए' 2 ”, “ पास्केल ”, “ निक्सन ”, “ लंडन ”, “ यूके ' और '(171) 555-7788 ' मेज पर ' ग्राहक 'स्तंभों के लिए' पहचान ”, “ पहला नाम ”, “ उपनाम ”, “ शहर ”, “ देश ' और ' फ़ोन ' क्रमश। यदि पंक्ति पहले से मौजूद नहीं है, तो उसे डाला जाएगा। अन्यथा, यह उन मानों को अपडेट करेगा जहां ' आईडी = आईडी ” शर्त मिलती है। इस क्वेरी को चलाएँ:

चुनना * से ग्राहक ;
डालना में ग्राहक ( पहचान , पहला नाम , उपनाम , शहर , देश , फ़ोन )
मान ( 2 , 'पास्केल' , 'निक्सन' , 'लंडन' , 'यूके' , '(171) 555-7788' )
पर डुप्लीकेट चाबी अद्यतन पहचान = पहचान;

क्वेरी चलाने से पहले यह तालिका है, आप देख सकते हैं ' पहचान ' के बराबर ' 2 ' मौजूद नहीं होना:

क्वेरी चलाने के बाद, यह क्वेरी तालिका में नई पंक्तियाँ सम्मिलित करेगी:

आपने सफलतापूर्वक एक नई पंक्ति सम्मिलित कर ली है, क्योंकि क्वेरी चलाने से पहले डेटा मौजूद नहीं है।

निष्कर्ष

MySQL में, एक नई पंक्ति तभी डालें जब डेटा पहले से मौजूद न हो “का उपयोग करके इग्नोर डालें 'कथन या' जहां मौजूद नहीं है 'में खंड' में सम्मिलित करें ' कथन। ऐसा करने का दूसरा तरीका 'का उपयोग कर रहा है' डुप्लीकेट कुंजी अद्यतन पर 'में खंड' में सम्मिलित करें ” यदि पंक्ति पहले से मौजूद है तो अद्यतन करने के लिए कथन। अन्यथा, एक नई पंक्ति जोड़ें। पोस्ट में चर्चा की गई कि डेटा मौजूद न होने पर ही एक नई पंक्ति कैसे सम्मिलित की जाए।