gpt4 book ai didi

mysql - 如何正确调用不带out参数的MySQL存储过程?

转载 作者:行者123 更新时间:2023-11-29 06:28:39 25 4
gpt4 key购买 nike

我有一个 MySQL SP,如下

DELIMITER //

CREATE PROCEDURE prc_testProc(
IN p_input varchar(32),
out v_output BIGINT)
BEGIN

SET v_output = 1000; -- default sequence value

IF (p_input = 'test1') THEN

SET v_output = (Select MAX(a.id) FROM tbl1 a WHERE a.colunmname='somename');

ELSEIF (p_input = 'test2') THEN

SET v_output = (Select MAX(a.id) FROM tbl2 a WHERE a.colunmname='somename');

ELSE
SET v_output = 1000;

END IF;
END;
//

DELIMITER ;

它编译得很好。但是当我将其称为如下时

call prc_testProc('ww',@v_output);

我只收到“0 行受影响”

我做错了什么?我期望默认值,即本例中的 1000。

最佳答案

传递一个变量作为第二个参数。如果您从 MySQL Workbench 调用它,请使用用户定义的变量(@var),如果您从其他过程调用它,它可以是普通变量(DECLARE)。

call prc_testProc('ww',@v_output);

select @v_output;

关于mysql - 如何正确调用不带out参数的MySQL存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57922465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com