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。

更新時間:22-06-2020

4K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲取認證

開始
廣告