डुप्लिकेट कुंजी पर सम्मिलित करने के लिए सशर्त अद्यतन
डुप्लिकेट कुंजी स्थितियों के आधार पर रिकॉर्ड सम्मिलित करना या अद्यतन करना डेटाबेस प्रोग्रामिंग में एक सामान्य परिदृश्य है . हालाँकि, कभी-कभी आपको अद्यतन स्थिति को और अधिक प्रतिबंधित करने की आवश्यकता हो सकती है, जिससे यह अतिरिक्त मानदंडों पर निर्भर हो जाती है। दुर्भाग्य से, 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 संरक्षित रहेगी।
अतिरिक्त विचार
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3