我在任何地方都找不到这个答案,但是您能从MySQL中的另一个存储过程调用一个存储过程吗?我想要取回Identity值并在父存储过程中使用它。我们不能再使用函数了!
发布于 2012-06-13 00:34:56
CREATE PROCEDURE innerproc(OUT param1 INT)
BEGIN
insert into sometable;
SELECT LAST_INSERT_ID() into param1 ;
END
-----------------------------------
CREATE PROCEDURE outerproc()
BEGIN
CALL innerproc(@a);
// @a gives you the result of innerproc
SELECT @a INTO variableinouterproc FROM dual;
ENDOUT参数应该可以帮助您将值返回给调用procedure.Based,解决方案必须是这样的。
发布于 2012-06-13 00:31:40
要调用另一个过程,请使用CALL:ex:Call SP1(parm1, parm2);
要获得身份,您是否尝试查看LAST_INSERT_ID();您会在SP调用后执行类似于SELECT LAST_INSERT_ID()的操作。
下面是一个完整的、经过测试的示例:
DELIMITER $$
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
) $$
CREATE PROCEDURE sp1()
BEGIN
insert into animals (name) values ('bear');
END $$
CREATE PROCEDURE sp2()
BEGIN
call sp1;
select last_insert_id();
END $$
call sp2;https://stackoverflow.com/questions/11000802
复制相似问题