मुझे किसी विशेष कुंजी के साथ रिकॉर्ड के सभी फ़ील्ड के मानों को सेट करना है (कुंजी वास्तव में समग्र है), रिकॉर्ड को सम्मिलित करना यदि अभी तक ऐसी कुंजी के साथ कोई रिकॉर्ड नहीं है।MySQL में `REPLACE` और 'INSERT ... पर लागू कुंजी अपडेट' के बीच व्यावहारिक मतभेद क्या हैं?
REPLACE
नौकरी करने के लिए प्रतीत होता है, लेकिन साथ ही इसके मैनुअल पेज INSERT ... ON DUPLICATE KEY UPDATE
का सुझाव देता है।
उनमें से मुझे क्या बेहतर चुनना चाहिए और क्यों?
REPLACE
का एकमात्र "दुष्प्रभाव" मेरे दिमाग में आता है कि यह ऑटोइनक्रिकमेंट मानों को बढ़ाएगा (सौभाग्य से मैं किसी का उपयोग नहीं करता) जबकि INSERT ... ON DUPLICATE KEY UPDATE
शायद नहीं होगा। ध्यान में रखने के लिए अन्य व्यावहारिक मतभेद क्या हैं? REPLACE
पर विशेष मामलों में INSERT ... ON DUPLICATE KEY UPDATE
और इसके विपरीत क्या पसंद किया जा सकता है?
सम्मिलित करें ... पर नकली चाबी अद्यतन वास्तव में करता भी autoincrement काउंटर बढ़ाने के। रिकॉर्ड अपडेट होने के लिए नहीं, लेकिन अगले रिकॉर्ड के लिए डाला गया। तो यदि उच्चतम आईडी 10 है और आप एक डुप्लिकेट डालने के लिए करते हैं, और फिर एक नया अद्वितीय मान डालता है, तो पंक्ति की आईडी 12 हो जाएगी। – marlar