MySQL存儲過程是一組預定義的SQL語句,可以在用于數據庫的存儲過程內調用和執行。存儲過程通常具有可確定的輸入和輸出參數列表。其中,輸出參數通常是存儲過程調用返回的值。
存儲過程可以返回多種類型的數據,其中包括集合。MySQL中使用CURSOR游標實現返回一個集合的功能。下面的示例演示如何在存儲過程中使用CURSOR返回一個集合:
DELIMITER // CREATE PROCEDURE get_employee_list() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE emp_name VARCHAR(50); DECLARE emp_salary DECIMAL(10,2); DECLARE emp_cursor CURSOR FOR SELECT name, salary FROM employee; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN emp_cursor; select_field_loop: LOOP FETCH emp_cursor INTO emp_name, emp_salary; IF done THEN LEAVE select_field_loop; END IF; -- 打印出員工姓名和薪水 SELECT emp_name, emp_salary; END LOOP; CLOSE emp_cursor; END// DELIMITER ;
在上面的示例中,存儲過程使用游標來讀取employee表中的數據,并在循環中打印出每位員工的姓名和薪水。
在調用此存儲過程時,使用以下代碼:
CALL get_employee_list();
執行結果將為每位員工的姓名和薪水:
'John Doe', '50000.00' 'Jane Smith', '60000.00' ...
通過存儲過程返回集合可以方便地將多個結果聚合到一個結果集中,并且可以在存儲過程中添加邏輯來處理數據。在開發復雜的應用程序時,使用存儲過程返回集合可以提高代碼的可維護性和易讀性。