MySQL存儲過程是一種預(yù)先編譯的SQL代碼塊,可以被多次調(diào)用并執(zhí)行。存儲過程還可以帶有參數(shù),這些參數(shù)可以提供更加靈活的功能。其中,存儲過程三個參數(shù)分別為輸入?yún)?shù)、輸出參數(shù)和輸入輸出參數(shù)。
DELIMITER // CREATE PROCEDURE GetCustomer(IN customerID INT, OUT customerName VARCHAR(50), INOUT customerAge INT) BEGIN SELECT Name INTO customerName FROM Customers WHERE CustomerID=customerID; SELECT Age INTO customerAge FROM Customers WHERE CustomerID=customerID; SET customerAge=customerAge+1; END // DELIMITER ;
其中,輸入?yún)?shù)(IN)是存儲過程接受的輸入值,在上述例子中是customerID;輸出參數(shù)(OUT)則是存儲過程執(zhí)行后將會輸出的值,在上述例子中是customerName;輸入輸出參數(shù)(INOUT)則是在存儲過程執(zhí)行中既能夠輸入值,又能夠輸出值的參數(shù),在上述例子中是customerAge。
通過使用存儲過程三個參數(shù),可以為存儲過程帶來更加靈活的功能,豐富SQL代碼的使用。