透過 IF 邏輯在儲存過程中呼叫儲存過程?


要在儲存過程中呼叫儲存過程,語法如下所示

If yourInputValue > 100 then
     call yourProcedureName1();
 else
    call yourProcedureName2();
    end If ;
    END

讓我們實現上述語法。為了實現上述概念,讓我們建立一個儲存過程 -

mysql> delimiter //
mysql> create procedure Hello_Stored_Procedure()
   -> BEGIN
   -> select 'Hello World!!!';
   -> END
   -> //
Query OK, 0 rows affected (0.18 sec)

建立第二個儲存過程的查詢如下 -

mysql> create procedure Hi_Stored_Procedure()
   -> BEGIN
   -> select 'Hi!!!';
   -> END
   -> //
Query OK, 0 rows affected (0.17 sec)

以下是使用 IF 邏輯在儲存過程中呼叫儲存過程的查詢 -

mysql> DELIMITER //
mysql> create procedure test(IN input int)
   -> BEGIN
   -> If input > 100 then
   -> call Hello_Stored_Procedure();
   -> else
   -> call Hi_Stored_Procedure();
   -> end If ;
   -> END
   -> //
Query OK, 0 rows affected (0.18 sec)

現在可以透過 call 呼叫儲存過程 -

mysql> delimiter ;
mysql> call test(110);

這將產生以下輸出 -

+----------------+
| Hello World!!! |
+----------------+
| Hello World!!! |
+----------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.02 sec)

更新於: 2019 年 12 月 16 日

547 次瀏覽

開啟你的 職業生涯

透過完成課程取得認證

開始學習
廣告