MySQL存儲過程是一系列SQL語句的集合,它被封裝在一起并通過一個公共名稱來調(diào)用。在MySQL中,存儲過程通過執(zhí)行一個語句來創(chuàng)建。
CREATE PROCEDURE procedure_name([IN|OUT|INOUT] parameter_name parameter_type) --存儲過程代碼 END;
在存儲過程中,可以使用變量、循環(huán)、條件語句等,可以實現(xiàn)更復雜的業(yè)務邏輯。
CREATE PROCEDURE get_user_by_id(IN uid INT) BEGIN DECLARE uname VARCHAR(255); SELECT name INTO uname FROM users WHERE id = uid; SELECT uname; END;
為了執(zhí)行以上存儲過程,需要先創(chuàng)建一個具有合適權限的用戶并授權。
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password'; GRANT EXECUTE ON dbname.* TO 'testuser'@'localhost';
其中,'dbname'是存儲過程所在的數(shù)據(jù)庫名稱。
授權成功后,用戶可以通過以下語句來調(diào)用存儲過程。
CALL get_user_by_id(1);