-
नहीं:कंपाउंड स्टेटमेंट का उपयोग केवल संग्रहीत कार्यक्रमों के मुख्य भाग के भीतर ही किया जा सकता है।
-
START TRANSACTION;
औरCOMMIT;
अलग बयान हैं। यदि आप चाहते हैं कि किसी संग्रहीत प्रोग्राम के मुख्य भाग में कई कथन हों, तो उसे उन कथनों को किसी प्रकार के यौगिक कथन ब्लॉक में संलग्न करना होगा जैसे किBEGIN ... END
(जो ब्रेसिज़{ ... }
. में स्टेटमेंट के ब्लॉक को एनक्लोज़ करने के समान है सी-जैसी भाषा के भीतर)।उस ने कहा, आप कर सकते थे एक संग्रहीत प्रोग्राम है जिसमें केवल एकल-कथन है
START TRANSACTION;
याCOMMIT;
—इस तरह के कार्यक्रम के लिए किसी कंपाउंड स्टेटमेंट ब्लॉक की आवश्यकता नहीं होगी और यह केवल एक नया शुरू करेगा / वर्तमान लेनदेन करेगा।एक संग्रहीत प्रोग्राम के बाहर, जहां कंपाउंड स्टेटमेंट ब्लॉक की अनुमति नहीं है, आप
START TRANSACTION;
जारी कर सकते हैं औरCOMMIT;
आवश्यकता पड़ने पर बयान। -
LOOP
एक कंपाउंड स्टेटमेंट ब्लॉक भी है, जो केवल एक संग्रहित प्रक्रिया के भीतर ही मान्य है। यह आवश्यक नहीं है एकLOOP
संलग्न करने के लिएBEGIN ... END
. के अंदर ब्लॉक करें ब्लॉक, हालांकि यह सामान्य है (अन्यथा किसी भी आवश्यक लूप इनिशियलाइज़ेशन को करना मुश्किल है)।
आपके मामले में, जहां आप स्पष्ट रूप से लूपिंग निर्माण से तालिका में डेटा सम्मिलित करना चाहते हैं, आपको या तो निम्न की आवश्यकता होगी:
-
एक संग्रहीत प्रोग्राम को परिभाषित करें जिसमें आप
LOOP
का उपयोग करते हैं; -
एक बाहरी प्रोग्राम में एक लूप को पुनरावृत्त करें जो प्रत्येक पुनरावृत्ति पर डेटाबेस प्रश्नों को निष्पादित करता है; या
-
सेट के संदर्भ में अपने तर्क को फिर से परिभाषित करें जिस पर SQL सीधे काम कर सकता है।