"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > SQL में डुप्लिकेट कुंजी पर INSERT... के साथ सशर्त अपडेट कैसे कार्यान्वित करें?

SQL में डुप्लिकेट कुंजी पर INSERT... के साथ सशर्त अपडेट कैसे कार्यान्वित करें?

2025-01-09 को प्रकाशित
ब्राउज़ करें:338

How to Implement Conditional Updates with INSERT ... ON DUPLICATE KEY in SQL?

डुप्लिकेट कुंजी पर सम्मिलित करने के लिए सशर्त अद्यतन

डुप्लिकेट कुंजी स्थितियों के आधार पर रिकॉर्ड सम्मिलित करना या अद्यतन करना डेटाबेस प्रोग्रामिंग में एक सामान्य परिदृश्य है . हालाँकि, कभी-कभी आपको अद्यतन स्थिति को और अधिक प्रतिबंधित करने की आवश्यकता हो सकती है, जिससे यह अतिरिक्त मानदंडों पर निर्भर हो जाती है। दुर्भाग्य से, INSERT... ON DUPLICATE KEY UPDATE सिंटैक्स मूल रूप से सशर्त अपडेट के लिए WHERE क्लॉज का समर्थन नहीं करता है।

सीमा पर काबू पाना

इस सीमा के आसपास काम करने के लिए, आप अद्यतन खंड के भीतर IF() फ़ंक्शन का उपयोग कर सकते हैं। IF() फ़ंक्शन आपको दिए गए तार्किक अभिव्यक्ति के आधार पर एक वैकल्पिक मान निर्दिष्ट करने की अनुमति देता है।

उदाहरण कार्यान्वयन

निम्नलिखित INSERT पर विचार करें... डुप्लिकेट कुंजी अद्यतन पर क्वेरी:

INSERT INTO daily_events (created_on, last_event_id, last_event_created_at)
VALUES ('2010-01-19', 23, '2010-01-19 10:23:11')
ON DUPLICATE KEY UPDATE
  last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);

इस क्वेरी में, UPDATE क्लॉज में एक IF() स्टेटमेंट होता है जो जांच करता है कि मौजूदा Last_event_created_at मान इससे कम है या नहीं मान डाला जा रहा है. यदि मौजूदा मान पुराना है, तो अंतिम_इवेंट_आईडी को नए मान से प्रतिस्थापित करते हुए अद्यतन किया जाएगा। अन्यथा, मौजूदा Last_event_id संरक्षित रहेगी।

अतिरिक्त विचार

  • याद रखें कि यदि स्थिति गलत है तो IF() NULL का मूल्यांकन करता है। इसलिए, शर्त पूरी नहीं होने पर Last_event_id के लिए अद्यतन मान भी NULL होगा।
  • अपडेट की वांछित फ़िल्टरिंग सुनिश्चित करने के लिए एक अतिरिक्त WHERE क्लॉज या अलग UPDATE क्वेरी का उपयोग करने पर विचार करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3