[英]Calling a Stored Procedure in a Stored Procedure in MySQL
我在任何地方都找不到此答案,但是可以從MySQL中的另一個存儲過程調用存儲過程嗎? 我想找回標識值,並在父存儲過程中使用它。 我們不能再使用FUNCTIONS!
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;
END
OUT
參數應幫助您將值返回給調用過程。基於此,解決方案必須是這樣的。
要調用另一個過程,請使用CALL :例如: 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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.