MySQL可以通過(guò)執(zhí)行程序塊來(lái)完成一系列的操作,這些操作集合在一起被稱(chēng)為存儲(chǔ)過(guò)程。存儲(chǔ)過(guò)程可以在MySQL服務(wù)器端執(zhí)行,并且支持輸入和輸出參數(shù)。在編寫(xiě)存儲(chǔ)過(guò)程時(shí),可以使用一種類(lèi)似PL/SQL的語(yǔ)言——MySQL存儲(chǔ)過(guò)程語(yǔ)言來(lái)編寫(xiě)。
在執(zhí)行存儲(chǔ)過(guò)程時(shí),可以使用CALL語(yǔ)句來(lái)調(diào)用存儲(chǔ)過(guò)程。CALL語(yǔ)句的語(yǔ)法如下:
CALL procedure_name([parameter_list]);
其中,procedure_name是存儲(chǔ)過(guò)程的名稱(chēng),parameter_list是存儲(chǔ)過(guò)程的參數(shù)列表。如果存儲(chǔ)過(guò)程沒(méi)有參數(shù),那么就可以省略該參數(shù)。
以下是一個(gè)簡(jiǎn)單的示例,展示如何創(chuàng)建和調(diào)用一個(gè)MySQL存儲(chǔ)過(guò)程:
CREATE PROCEDURE my_proc(IN num INT) BEGIN DECLARE i INT DEFAULT 0; WHILE i< num DO SELECT i; SET i = i + 1; END WHILE; END; CALL my_proc(10);
以上代碼表示創(chuàng)建了一個(gè)存儲(chǔ)過(guò)程my_proc,并將一個(gè)整數(shù)類(lèi)型的參數(shù)傳遞給該存儲(chǔ)過(guò)程。在該存儲(chǔ)過(guò)程中,使用WHILE循環(huán)和SELECT和SET語(yǔ)句來(lái)輸出0到9的整數(shù)序列。最后,通過(guò)調(diào)用該存儲(chǔ)過(guò)程來(lái)執(zhí)行它。