"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > MySQL संग्रहित प्रक्रियाओं में \"त्रुटि 1329: कोई डेटा नहीं - शून्य पंक्तियाँ प्राप्त\" को कैसे संभालें?

MySQL संग्रहित प्रक्रियाओं में \"त्रुटि 1329: कोई डेटा नहीं - शून्य पंक्तियाँ प्राप्त\" को कैसे संभालें?

2024-11-07 को प्रकाशित
ब्राउज़ करें:730

How to Handle \

संग्रहीत प्रक्रियाओं में कोई डेटा चेतावनी नहीं: "त्रुटि 1329: शून्य पंक्तियाँ प्राप्त, चयनित, या संसाधित"

डेटाबेस प्रोग्रामिंग में, संग्रहीत कार्यविधियाँ अक्सर जटिल परिचालनों को समाहित करने और डेटा अखंडता सुनिश्चित करने के लिए उपयोग किया जाता है। हालाँकि, कभी-कभी इन प्रक्रियाओं में त्रुटियाँ आ सकती हैं या अप्रत्याशित चेतावनियाँ उत्पन्न हो सकती हैं। एक आम समस्या है "त्रुटि 1329: कोई डेटा नहीं - शून्य पंक्तियाँ लाई गईं, चयनित, या संसाधित" संदेश।

यह चेतावनी आम तौर पर तब दिखाई देती है जब एक संग्रहीत प्रक्रिया स्पष्ट रूप से उस मामले को संभाल नहीं पाती है जहां कोई डेटा वापस नहीं किया जाता है। इसे हल करने के लिए, किसी को "नहीं मिला" स्थिति को ठीक से संभालना होगा। MySQL में, इसे CONTINUE HANDLER स्टेटमेंट का उपयोग करके प्राप्त किया जा सकता है। SQL डेटा पढ़ता है शुरू घोषित करें पूर्णांक डिफ़ॉल्ट 0; घोषित करें l_name VARCHAR(20); इसके लिए my_cur कर्सर घोषित करें ग्राहक_टीबीएल से नाम चुनें; my_cur खोलें; मेरा_कर_लूप: लूप my_cur को l_name में लाएँ; यदि किया गया = 1 तब मेरा_कर_लूप छोड़ो; अंत यदि; Names_tbl मान(l_name) में सम्मिलित करें; अंत लूप my_cur_loop; बंद करें my_cur; END

यदि यह प्रक्रिया customer_tbl तालिका में किसी भी डेटा के बिना चलती है, तो यह "त्रुटि 1329" चेतावनी को ट्रिगर करेगी। इसे रोकने के लिए, हम प्रक्रिया के अंत में निम्नलिखित कंटिन्यू हैंडलर स्टेटमेंट जोड़ सकते हैं:

CREATE PROCEDURE `testing_proc`()
READS SQL DATA
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE l_name VARCHAR(20);
    DECLARE my_cur CURSOR FOR
        SELECT name FROM customer_tbl;
    OPEN my_cur;
        my_cur_loop:
        LOOP FETCH my_cur INTO l_name;
            IF done = 1 THEN
                LEAVE my_cur_loop;
            END IF;
            INSERT INTO names_tbl VALUES(l_name);
        END LOOP my_cur_loop;
    CLOSE my_cur;
END

यह स्टेटमेंट MySQL को बताता है यदि कोई पंक्तियाँ नहीं मिलती हैं तो 'किया गया' वेरिएबल को 1 पर सेट करें। इससे कर्सर लूप बाहर निकल जाएगा, जिससे त्रुटि उत्पन्न होने से रोका जा सकेगा।

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

SELECT name INTO l_name FROM customer_tbl LIMIT 1;

यह कथन सुनिश्चित करेगा कि एक पंक्ति प्राप्त हो गई है, चेतावनी को साफ़ करते हुए।

ठीक से संभालने से "नहीं मिला" स्थिति या एक डमी स्टेटमेंट जोड़कर, कोई संग्रहीत प्रक्रियाओं में "त्रुटि 1329" चेतावनी को समाप्त कर सकता है जो कोई डेटा नहीं लौटाता है।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3