Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 저장 프로시저는 어떻게 내부에 있는 다른 MySQL 저장 프로시저를 호출할 수 있습니까?

<시간/>

MySQL 저장 프로시저가 내부에서 다른 MySQL 저장 프로시저를 호출할 수 있습니다. 이를 보여주기 위해 저장 프로시저가 다른 저장 프로시저를 호출하여 last_insert_id를 찾는 예를 들어보겠습니다.

예시

mysql> Create table employee.tbl(Id INT NOT NULL AUTO_INCREMENT, Name Varchar(30) NOT NULL, PRIMARY KEY(id))//
Query OK, 0 rows affected (3.87 sec)

mysql> Create Procedure insert1()
   -> BEGIN insert into employee.tbl(name) values ('Ram');
   -> END//
Query OK, 0 rows affected (0.10 sec)

이제 다음 프로시저 insert2()에서 첫 번째 저장 프로시저, 즉 insert1()을 호출합니다.

mysql> Create Procedure insert2()
   -> BEGIN
   -> CALL insert1();
   -> Select last_insert_id();
   -> END //
Query OK, 0 rows affected (0.11 sec)
mysql> Delimiter ;

mysql> Call insert2();
+------------------+
| last_insert_id() |
+------------------+
| 1                |
+------------------+
1 row in set (0.36 sec)
Query OK, 0 rows affected (0.37 sec)

위의 결과 세트는 우리가 insert1()을 호출할 때 employee.tbl이라는 테이블에 첫 번째 값을 삽입하고 두 번째 저장 프로시저, 즉 insert2()에서 last_insert_id()를 선택하면 출력 1을 제공한다는 것을 보여줍니다.