IF और LOOP in Procedures
In this page:
IF condition THEN
-- statements
ELSEIF condition THEN
-- statements
ELSE
-- statements
END IF;
loop_label: LOOP
-- statements
IF exit_condition THEN LEAVE loop_label; END IF;
END LOOP;
Procedures में IF-THEN इस्तेमाल करना
किसी stored procedure के अंदर IF-THEN किसी भी programming language में conditional logic जैसा काम करता है, statements के एक block को सिर्फ तभी चलाते हुए जब एक specified condition true evaluate हो।
उदाहरण: Using IF-THEN in Procedures
DELIMITER //
CREATE PROCEDURE CheckStock(IN qty INT)
BEGIN
IF qty < 10 THEN
SELECT 'Low stock' AS message;
END IF;
END //
DELIMITER ;
CALL CheckStock(5);
कई Choices के लिए ELSEIF Add करना
ELSEIF एक IF block पर additional conditions chain करता है, procedure को क्रम में कई possibilities check करने देते हुए और यह जो भी पहले match करे उसके आधार पर अलग logic चलाने देते हुए।
उदाहरण: Adding ELSEIF for Multiple Choices
DELIMITER //
CREATE PROCEDURE GradeScore(IN score INT)
BEGIN
IF score >= 90 THEN
SELECT 'A' AS grade;
ELSEIF score >= 70 THEN
SELECT 'B' AS grade;
ELSE
SELECT 'F' AS grade;
END IF;
END //
DELIMITER ;
CALL GradeScore(75);
Simple LOOP Statement
एक plain LOOP अपने contents indefinitely दोहराता है जब तक आप explicitly इसे एक LEAVE statement से बाहर न निकालें — उस statement को भूल जाना किसी procedure के अंदर गलती से एक infinite loop लिखने का classic तरीका है।
उदाहरण: The Simple LOOP Statement
DELIMITER //
CREATE PROCEDURE CountToFive()
BEGIN
DECLARE i INT DEFAULT 1;
my_loop: LOOP
IF i > 5 THEN
LEAVE my_loop;
END IF;
SET i = i + 1;
END LOOP;
SELECT i AS final_value;
END //
DELIMITER ;
CALL CountToFive();
WHILE Loop
WHILE loop body में हर pass से पहले अपनी condition check करता है, इसलिए अगर condition शुरुआत में false हो, loop body बिल्कुल नहीं चलता, कुछ loop types के उलट जो हमेशा कम से कम एक बार execute होते हैं।
उदाहरण: The WHILE Loop
DELIMITER //
CREATE PROCEDURE CountToFiveWhile()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 5 DO
SET i = i + 1;
END WHILE;
SELECT i AS final_value;
END //
DELIMITER ;
CALL CountToFiveWhile();
REPEAT Loop
REPEAT WHILE का उल्टा है: यह पहले अपनी body चलाता है और सिर्फ बाद में condition check करता है, यह guarantee करते हुए कि loop exit होने से पहले अंदर का code कम से कम एक बार execute हो।
उदाहरण: The REPEAT Loop
DELIMITER //
CREATE PROCEDURE CountToFiveRepeat()
BEGIN
DECLARE i INT DEFAULT 1;
REPEAT
SET i = i + 1;
UNTIL i > 5 END REPEAT;
SELECT i AS final_value;
END //
DELIMITER ;
CALL CountToFiveRepeat();
THENया closingEND IF;भूल जाना, जो एक syntax error है।- बिना
LEAVEcondition के एकLOOPलिखना, जो हमेशा के लिए दोहराता है। - एक
WHILEloop के अंदर loop variable न बदलना, ताकि condition कभी false न हो।
Chapter Quiz — Complete all 5 topics to unlock
0/5 topics done
Complete these topics first: