MySQL的存儲過程可以方便地實現數據庫操作的復雜邏輯,但在實際開發中,會遇到需要執行多個存儲過程的情況。此時,我們可以在一個存儲過程內部調用另一個存儲過程。
調用存儲過程需要使用CALL語句,語法如下:
CALL procedure_name(argument_list);
其中,procedure_name
為被調用的存儲過程名稱,argument_list
為參數列表。
假設我們已有以下兩個存儲過程:
DELIMITER $$ CREATE PROCEDURE `proc1`() BEGIN SELECT * FROM tbl1; END $$ DELIMITER ; DELIMITER $$ CREATE PROCEDURE `proc2`() BEGIN CALL proc1(); SELECT * FROM tbl2; END $$ DELIMITER ;
在proc2
中,我們使用CALL proc1()
調用proc1
。注意,CALL
語句必須在BEGIN
和END
之間。
運行proc2
,可以得到tbl1
和tbl2
的查詢結果。
通過在存儲過程內部調用其他存儲過程,可以將數據庫操作邏輯劃分為多個模塊,提高代碼可讀性和可維護性。