日期:2014-05-16  浏览次数:20857 次

mysql 存储过程中不能使用 return 的解决办法

? ? ?大家都知道,mysql 的存储过程是不能使用 return 语句的,只有存储函数才有此功能。那么,有没有替代 return 的关键字呢?
??? 没有!
??? 像 exit, quit 之类的关键字全没有!
??? 怎么办?
??? 使用功能稍次一些的 leave 关键字吧,此关键字可以模仿 return 的行为。
??? 举一个例子吧:
????
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Procedure structure for sp_test_return
-- ----------------------------
DROP PROCEDURE IF EXISTS `sp_test_return`;
DELIMITER ;;
CREATE PROCEDURE `sp_test_return`(In num integer)
label_pro:begin
if num > 3 then
?? leave label_pro;
else
?? select num as exeuted;
end if;
end;;
DELIMITER ;

??? 本例中,给整个存储过程的入口打了一个标记,当在遇到需要退出存储过程时,只要 leave + 此标记即可。