如何定义在mysql中返回值的存储过程

时间:2012-04-12 10:55:56

标签: mysql stored-procedures

我想在MySQL中将函数定义为存储过程。

我尝试了如下程序:

DELIMITER //
CREATE PROCEDURE getGroupUsers(IN groupId int) return curser

BEGIN
 Declare services_curs cursor for SELECT `service_id`,`service_name`,`service_type_value`,`service_label`,`parent`,`service_group` from services;

open services_curs;

return services_curs;

END //

DELIMITER ;

但发生错误:

#1313 - RETURN is only allowed in a FUNCTION

我知道这是一个可怕的语法错误。什么是正确的语法?

2 个答案:

答案 0 :(得分:2)

在过程中,您可以使用OUT变量,这些变量将被填充并在过程外可用。如上所述,MySQL过程不返回值。你需要stored function来实现这一目标。

可以找到关于如何使用OUT变量的一个小例子in the documentation

答案 1 :(得分:0)

在过程中使用select返回值,否则使用function returns个值。{/ p>