MySQL 的存儲過程是一段可重復(fù)執(zhí)行的代碼塊。聲明存儲過程的語法為:
DELIMITER $$ CREATE PROCEDURE procedure_name (parameter_list) BEGIN -- 存儲過程的代碼 END $$ DELIMITER ;
其中procedure_name
是存儲過程的名字,parameter_list
是可選的參數(shù)列表。
存儲過程產(chǎn)生的結(jié)果可以通過使用 OUT 參數(shù)輸出,也可以通過返回值返回,例如:
DELIMITER $$ CREATE PROCEDURE multiply (IN a INT, IN b INT, OUT result INT) BEGIN SET result = a * b; END $$ DELIMITER ;
上面的例子聲明了一個名為multiply
的存儲過程,它有三個參數(shù),兩個輸入?yún)?shù)a
和b
,一個輸出參數(shù)result
。代碼塊中的語句將輸入?yún)?shù)a
和b
相乘,并將結(jié)果賦值給輸出參數(shù)result
。
存儲過程可以通過調(diào)用來使用:
CALL multiply(2, 3, @result); SELECT @result;
這里通過CALL
命令調(diào)用了存儲過程multiply
,將輸入?yún)?shù)a
和b
分別設(shè)為 2 和 3,結(jié)果存在變量@result
中。然后通過SELECT
命令查詢變量@result
,可以查看存儲過程執(zhí)行后得到的結(jié)果。
下一篇mysql增量索引