mysql 存储过程中不能使用 return 的解决办法
mysql 的存储过程是不能使用 return 语句的,只有存储函数才有此功能。那么,有没有替代 return 的关键字呢? 没有! 像 exit, quit 之类的关键字全没有! 怎么办? 使用功能稍次一些的 leave 关键字吧,此关键字可以模仿 return 的行为。 举一个例子吧: SET FOREIGN_KEY_CHECKS
·
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 ;
没有!
像 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 + 此标记即可。
更多推荐
已为社区贡献1条内容
所有评论(0)