Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL संग्रहीत फ़ंक्शन में गोटो लेबल का उपयोग कैसे करें

ऐसे GOTO मामले हैं जिन्हें MySQL में लागू नहीं किया जा सकता है, जैसे कोड में पीछे की ओर कूदना (और एक अच्छी बात भी)।

लेकिन आपके उदाहरण जैसी किसी चीज़ के लिए जहाँ आप हर चीज़ से निकलकर कथनों की एक अंतिम श्रृंखला तक पहुँचना चाहते हैं, आप बाहर निकलने के लिए कोड के चारों ओर एक BEGIN / END ब्लॉक बना सकते हैं:

aBlock:BEGIN
    if (action = 'D') then
        if (rowcount > 0) then
            DELETE FROM datatable WHERE id = 2;      
        else
           SET p=CONCAT('Can not delete',@b);
           LEAVE aBlock;
        end if;
    end if;
END aBlock;
return 0;

चूंकि आपका कोड केवल कुछ नेस्टेड IF है, इसलिए दिए गए कोड में निर्माण अनावश्यक है। लेकिन यह लूप के अंदर से कई रिटर्न स्टेटमेंट से बचने और अंतिम प्रसंस्करण (थोड़ा सा TRY/FINALLY की तरह) को समेकित करने के लिए LOOP/WHILE/REPEAT के लिए अधिक समझ में आता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 तिथियों और औसत प्रति घंटा आउटपुट के बीच डेटा का चयन करें

  2. क्यों INNER JOIN बराबर नहीं (!=) हमेशा के लिए लटका?

  3. PHP में किसी अन्य वर्ग से MySQLi का उपयोग करना

  4. Laravel 8 सॉफ्ट डिलीट को पूरा करें और हटाए गए रिकॉर्ड्स ट्यूटोरियल को पुनर्स्थापित करें

  5. SQL केवल तालिका में सम्मिलित करें यदि रिकॉर्ड मौजूद नहीं है