it-source

MySQL 스토어드 프로시저에서의 스토어드 프로시저 호출

criticalcode 2022. 12. 9. 21:49
반응형

MySQL 스토어드 프로시저에서의 스토어드 프로시저 호출

어디에서도 이 답을 찾을 수 없습니다만, MySQL의 다른 Stored Procedure에서 Stored Procedure를 호출할 수 있습니까?Identity Value를 되돌려 부모 Stored Procedure에서 사용하고 싶다.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: ex: 를 사용합니다.Call SP1(parm1, parm2);

ID를 취득하기 위해 LAST_INSERT_ID()를 체크해 보셨습니까?SELECT LAST_INSERT_ID()SP 콜 후.

테스트 완료 예를 다음에 나타냅니다.

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;

언급URL : https://stackoverflow.com/questions/11000802/calling-a-stored-procedure-in-a-stored-procedure-in-mysql

반응형