ऐसे 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 के लिए अधिक समझ में आता है।