首頁  >  文章  >  資料庫  >  詳解MySQL呼叫預存程序和函數(案例)

詳解MySQL呼叫預存程序和函數(案例)

coldplay.xixi
coldplay.xixi轉載
2021-03-26 09:17:214045瀏覽

詳解MySQL呼叫預存程序和函數(案例)

預存程序和函數有多種呼叫方法。預存程序必須使用call語句調用,且預存程序和資料庫相關,如果要執行其他資料庫中的預存程序,則需要指定資料庫名稱。例如call dbname.procname。儲存函數的呼叫與MySQL中預先定義的函數的呼叫方式相同。

(免費學習推薦:mysql影片教學#)

1、呼叫預存程序

預存程序是透過call 語句進行呼叫的,語法如下:

call sp_name([parameter[,...])

call語句呼叫先前用create procedure建立的預存程序,其中sp_name為預存程序名稱,parameter為預存程序的參數。

【範例1】定義一個名為CountProcl的預存過程,然後呼叫這個預存程序。

定義預存程序:

mysql> delimiter //mysql> create procedure CountProcl(in sid int ,out num int)
    -> begin
    -> select count(*) into num from fruits where s_id = sid;
    -> end //Query OK, 0 rows affected (0.06 sec)mysql> delimiter ;

呼叫預存程序:

mysql> call CountProcl (101,@num);Query OK, 1 row affected (0.08 sec)

查看傳回結果:

mysql> select @num;+------+| @num |+------+|    3 |+------+1 row in set (0.00 sec)

此預存程序傳回了指定s_id=101的水果商數提供的水果種類,回傳值儲存在num變數中,使用select查看,回傳結果為3。

2、呼叫儲存函數

在MySQL中,儲存函數的使用方法與MySQL內部函數的使用方法是一樣的。即使用者自訂的儲存函數與MySQL內部函數是一個性質的。

【範例2】定義儲存函數CountProc2,然後呼叫這個函數,程式碼如下:

mysql> delimiter //mysql> create function CountProc2 (sid int)
    -> returns int
    -> begin
    -> return (select count(*) from fruits where s_id = sid);
    -> end//Query OK, 0 rows affected (0.06 sec)mysql> delimiter ;

呼叫儲存函數:

mysql> delimiter ;mysql> select CountProc2(101);+-----------------+| CountProc2(101) |+-----------------+|               3 |+-----------------+1 row in set (0.05 sec)

可以看到,該範例與上一個範例中傳回的結果相同,雖然儲存函數和預存程序的定義稍有不同,但可以實現相同的功能。

更多相關免費學習推薦:mysql教學##(影片)

#

以上是詳解MySQL呼叫預存程序和函數(案例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除