INSERT INTO … ON DUPLICATE KEY UPDATE
इस तरह काम करता है:
- यह हमेशा की तरह एक पंक्ति डालने का प्रयास करता है
- यदि किसी कॉलम में कोई बाधा उल्लंघन होता है, तो वह
UPDATE
को निष्पादित करता है इसके बजाय मौजूदा पंक्ति पर कथन जिसके साथINSERT
बयान टकरा गया
इसका सीधा सा मतलब है अगर UPDATE
केवल स्टेटमेंट ही सफल होगा, इसका ON DUPLICATE KEY UPDATE
समकक्ष भी काम करेगा। इसका मतलब है कि आप स्पष्ट रूप से UPDATE
. में किसी भी बाधा का उल्लंघन नहीं कर सकते हैं कथन या तो, या पूरी बात विफल हो जाएगी (उदाहरण के लिए UNIQUE
पर मान सेट करने का प्रयास करना कॉलम जो पहले से ही दूसरी पंक्ति में मौजूद है)।
यदि आप उसी मान को उसी कॉलम पर फिर से सेट करते हैं, तो यह अनिवार्य रूप से एक नो-ऑप है। कॉलम में मान नहीं बदलता है और इसलिए किसी भी त्रुटि का कारण नहीं बन सकता है (मान लें कि आपके पास वास्तव में कोई भी फंकी नहीं है BEFORE UPDATE
ट्रिगर जो दुर्व्यवहार कर सकते हैं)। यहां स्तंभों की संख्या अप्रासंगिक है, आप एक कथन में जितने चाहें उतने या कम को बदल सकते हैं।