如何 mysql 存储过程返回值

如何 mysql 存储过程返回值,第1张

mysql中要获得存储过程的返回值,可以增加一个out参数,用来返回。

mysql中存储过程的例子:

CREATE PROCEDURE addvoucher (

IN userid INT,

IN voucherid INT,

OUT result INT

)

BEGIN

SELECT

@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,

@isdead_a := isdead

FROM

t_voucher

WHERE

id = voucherid

SET autocommit = 0

IF EXISTS (

SELECT

*

FROM

t_user_voucher tuv,

t_voucher tv

WHERE

tv.id = tuv.voucherid

AND tv.batch =@batch_a

) THEN

SET result = 1-- 已存在

SELECT

result

ELSE

IF @c_count_a >0 THEN

IF (

TO_DAYS(@endate_a) - TO_DAYS(NOW())

) >0 THEN

IF @isdead_a = 1 THEN

INSERT INTO t_user_voucher (userid, voucherid, isdead)

VALUES

(userid, voucherid, 1)

UPDATE t_voucher SET c_count = c_count-1 where id = voucherid

SET result = 0-- 成功

END

RETURN 语句无条件终止查询、存储过程或批处理。存储过程或批处理中 RETURN 语句后面的语句都不执行。

当在存储过程中使用 RETURN 语句时,此语句可以指定返回给调用应用程序、批处理或过程的整数值。如果 RETURN 未指定值,则存储过程返回 0。

大多数存储过程按常规使用返回代码表示存储过程的成功或失败。没有发生错误时存储过程返回值 0。任何非零值表示有错误发生。

调用存储过程的应用程序可以将返回代码所对应的参数标记与整型变量绑定。

扩展资料:

如果用户定义一个函数有返回类型,可以像下面这样调用:

int func(){int value??????return value}int main(){int intvalueintvalue=func()????return 0}

1、在返回类型是char的函数中,return后应该是char类型的值。

2、在返回类型是int的函数中,如果是要停止函数的调用,最好应该为0。

3、在返回类型是结构类型的函数中,return后应该是结构的一个实例对象。

总之,函数定义为什么样的返回类型,该函数中return后就应该是相应类型的值。

如果实在不需要函数返回什么值,就需要用void声明其类型。

补充:如果用户函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。

参考资料来源:百度百科-return (C语言语句)

存储过程中的第一个参数 @title 将接收由调用程序指定的输入值,而第二个参数 @ytd_sales 将向调用程序返回该值。SELECT 语句使用 @title 参数以获得正确的 ytd_sales 值,并将该值赋予 @ytd_sales 输出参数。

CREATE PROCEDURE get_sales_for_title

@title varchar(80), -- This is the input parameter.

@ytd_sales int OUTPUT -- This is the output parameter.

AS

-- Get the sales for the specified title and

-- assign it to the output parameter.

SELECT @ytd_sales = ytd_sales

FROM titles

WHERE title = @title

RETURN

GO


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9970665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存