MySQL में सशर्त INSERT कथन
प्रश्न: क्या INSERT ऑपरेशन को सशर्त रूप से निष्पादित करना संभव है, जैसे कि अगर कथन?
विस्तार:
मान लीजिए कि हमें उत्पाद आईडी 2 के साथ 20 वस्तुओं के लिए ऑर्डर देने की आवश्यकता है। पर्याप्त स्टॉक सुनिश्चित करने के लिए, हम पहले हाथ में मौजूद मात्रा की जांच करते हैं:
SELECT IF( ( SELECT SUM(qty) FROM orders WHERE product_id = 2 ) 20यदि परिणाम सत्य है, तो हम INSERT क्वेरी निष्पादित करते हैं। हालाँकि, यह दृष्टिकोण समवर्ती समस्याओं के प्रति संवेदनशील है। एक साथ कई ऑर्डर के परिणामस्वरूप ओवरसेलिंग हो सकती है। चुनें value_for_column1, value_for_column2, ... कहीं से भी जहां your_special_condition
यदि SELECT कथन कोई पंक्तियाँ नहीं लौटाता है (अर्थात, विशेष शर्त झूठी है), तो कोई प्रविष्टि नहीं होती है।
उदाहरण:INSERT INTO TABLE SELECT value_for_column1, value_for_column2, ... FROM wherever WHERE your_special_conditionउत्पाद: आईडी, qty_on_hand ऑर्डर: आईडी, उत्पाद_आईडी, मात्रा
ऑर्डर में डालें (उत्पाद_आईडी, मात्रा) 2, 20 चुनें जहां (उत्पादों से qty_on_hand चुनें जहां आईडी = 2) > 20;यह क्वेरी केवल एक पंक्ति सम्मिलित करेगी यदि हाथ में पर्याप्त स्टॉक है। अन्यथा, यह प्रविष्टि निष्पादित नहीं करेगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3