दिलचस्प पोस्ट
NSXMLParser उदाहरण एक लैम्ब्डा अभिव्यक्ति में एक अनूठा _पीटीआर कैद कैसे करें? किसी फ़ाइल या फ़ोल्डर को कैसे हटाएं? TThreadedQueue कई उपभोक्ताओं के लिए सक्षम नहीं है? AngularJS के साथ गहरे मर्ज ऑब्जेक्ट जावास्क्रिप्ट: कैसे इंटरनेट एक्सप्लोरर में परिवर्तन घटना अनुकरण (प्रतिनिधिमंडल) एक पूर्ण स्क्रीन मोड में शीर्षक छुपा रहा है? Mockito: विधि पर जासूसी करने की कोशिश कर रहा है मूल विधि बुला रहा है क्या कोई अंतर्निर्मित फ़ंक्शन होता है जो अल्पविराम-सी, सी ++, या जावास्क्रिप्ट में किसी संख्या को अलग करता है? सी # में माउस की स्थिति प्राप्त करना कंटेनेटिंग के बिना स्ट्रिंग में लगातार शामिल करें मुझे स्वस्थों के साथ गुणों का उपयोग कब करना चाहिए? एंड्रॉइड: जीपीएस या इंटरनेट का उपयोग किए बिना उपयोगकर्ता का वर्तमान स्थान प्राप्त करें एंड्रॉइड प्रोजेक्ट में पीडीएफबॉक्स को कैसे जोड़ें या वैकल्पिक सुझाव दें लूप पायथन में सूची तत्वों को संशोधित नहीं किया जा सकता

MySQL – अनदेखी करें त्रुटि: डुप्लिकेट प्रविष्टि

मैं PHP में काम कर रहा हूँ

कृपया डीबी में नए रिकॉर्ड डालने का सही तरीका क्या है, जिसमें अद्वितीय फ़ील्ड है मैं बैच में बहुत सारे रिकॉर्ड जोड़ रहा हूं और मैं बस नए लोगों को डालने चाहता हूं और मुझे डुप्लिकेट प्रविष्टि के लिए कोई त्रुटि नहीं चाहिए।

क्या पहले ही एक चयन करने का और केवल यह देखने के लिए कि क्या प्रवेश पहले से ही INSERT – और INSERT के पहले ही है जब SELECT कोई रिकॉर्ड नहीं देता? मुझे आशा नहीं है।

मैं किसी तरह किसी भी त्रुटि के बिना इन आवेषण को नजरअंदाज करने के लिए MySQL को बता सकता हूं।

धन्यवाद

वेब के समाधान से एकत्रित समाधान "MySQL – अनदेखी करें त्रुटि: डुप्लिकेट प्रविष्टि"

आप INSERT … IGNORE वाक्यविन्यास का उपयोग कर सकते हैं यदि आप कोई कार्रवाई नहीं करना चाहते हैं, जब कोई डुप्लिकेट रिकॉर्ड होता है

यदि आप एक ही कुंजी के साथ एक नया एक के साथ एक पुराने रिकॉर्ड अधिलेखित करना चाहते हैं तो आप वाक्य रचना में फिर से उपयोग कर सकते हैं

या, आप INSERT का उपयोग कर सकते हैं … डुप्लिकेट कुंजी अद्यतन वाक्यविन्यास पर यदि आप एक डुप्लिकेट मुठभेड़ के बजाय रिकॉर्ड के लिए एक अद्यतन करना चाहते हैं।

संपादित करें: सोचा था कि मैं कुछ उदाहरण जोड़ूंगा

उदाहरण

कहें कि आपके पास दो कॉलम, id और value साथ tbl नामक तालिका है। एक प्रवेश, आईडी = 1 और मान = 1 है यदि आप निम्नलिखित कथन चलाते हैं:

 REPLACE INTO tbl VALUES(1,50); 

आपके पास अभी भी एक रिकॉर्ड है, आईडी = 1 मान = 50 के साथ ध्यान दें कि पूरे रिकॉर्ड को पहली बार हटा दिया गया था, और फिर पुनः सम्मिलित किया गया था। फिर:

 INSERT IGNORE INTO tbl VALUES (1,10); 

ऑपरेशन सफलतापूर्वक निष्पादित होता है, लेकिन कुछ भी नहीं डाला जाता है। आपके पास अभी भी आईडी = 1 और मान = 50 है आखिरकार:

 INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200; 

आपके पास आईडी = 1 और value = 200 के साथ एक रिकॉर्ड है

आप ट्रिगर्स का उपयोग कर सकते हैं

ट्रिगर करने के लिए यह परिचय मार्गदर्शिका भी देखें

अनूठे बाधा के बिना एक डुप्लिकेट तालिका बनाने की कोशिश करें, अधिमानतः एक अस्थायी तालिका, और उस तालिका में अपना बल्क लोड करें। फिर अस्थायी तालिका से केवल अनन्य (अलग) आइटम का चयन करें और लक्ष्य तालिका में डालें।

डेटाबेस स्कीमा क्या दिखती है?

आप अद्वितीय कॉल की गारंटी देने के लिए, एक आईडी कॉलम जोड़ सकते हैं जो प्रत्येक प्रविष्टि के लिए स्वत: वृद्धि होगी।

प्रश्न: मैं ग्राहकों के साथ एक डेटाबेस स्थापित कर रहा हूं। मुझे पता है कि आप डेटाबेस में जानकारी सम्मिलित करने के लिए "सम्मिलन" कथन का उपयोग करते हैं, लेकिन मैं यह कैसे सुनिश्चित कर सकता हूं कि मैं उसी क्लाइंट की जानकारी फिर से दर्ज नहीं करूँ?

उत्तर: आप यह सुनिश्चित कर सकते हैं कि आप EXISTS स्थिति का उपयोग करके डुप्लिकेट जानकारी सम्मिलित न करें।

उदाहरण के लिए, यदि आपके पास क्लाइंट के प्राथमिक कुंजी के साथ क्लाइंट नामित तालिका थी, तो आप निम्न कथन का उपयोग कर सकते हैं:

 INSERT INTO clients (client_id, client_name, client_type) SELECT supplier_id, supplier_name, 'advertising' FROM suppliers WHERE not exists (select * from clients where clients.client_id = suppliers.supplier_id); 

यह कथन एक उप-चयन के साथ कई रिकॉर्ड जोड़ता है

यदि आप एक एकल रिकॉर्ड डालना चाहते हैं, तो आप निम्न कथन का उपयोग कर सकते हैं:

 INSERT INTO clients (client_id, client_name, client_type) SELECT 10345, 'IBM', 'advertising' FROM dual WHERE not exists (select * from clients where clients.client_id = 10345); 

दोहरी तालिका के प्रयोग से आप अपने मान एक चुनिंदा बयान में दर्ज कर सकते हैं, भले ही मूल्य वर्तमान में किसी तालिका में नहीं जमा हो।

से http://www.techonthenet.com/sql/insert.php

 $duplicate_query=mysql_query("SELECT * FROM student") or die(mysql_error()); $duplicate=mysql_num_rows($duplicate_query); if($duplicate==0) { while($value=mysql_fetch_array($duplicate_query) { if(($value['name']==$name)&& ($value['email']==$email)&& ($value['mobile']==$mobile)&& ($value['resume']==$resume)) { echo $query="INSERT INTO student(name,email,mobile,resume)VALUES('$name','$email','$mobile','$resume')"; $res=mysql_query($query); if($query) { echo "Success"; } else { echo "Error"; } else { echo "Duplicate Entry"; } } } } else { echo "Records Already Exixts"; } 
 INSERT INTO tbl (col1,col2) SELECT val1,val2 FROM tbl WHERE (SELECT COUNT(*) FROM tbl WHERE col1 = val1 AND col2 = val2) = 0 LIMIT 1,1