MySQL存儲過程是一系列SQL語句的集合,它被封裝在一起并通過一個公共名稱來調用。在MySQL中,存儲過程通過執行一個語句來創建。
CREATE PROCEDURE procedure_name([IN|OUT|INOUT] parameter_name parameter_type) --存儲過程代碼 END;
在存儲過程中,可以使用變量、循環、條件語句等,可以實現更復雜的業務邏輯。
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;
為了執行以上存儲過程,需要先創建一個具有合適權限的用戶并授權。
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password'; GRANT EXECUTE ON dbname.* TO 'testuser'@'localhost';
其中,'dbname'是存儲過程所在的數據庫名稱。
授權成功后,用戶可以通過以下語句來調用存儲過程。
CALL get_user_by_id(1);